似乎突然之间,我们开始注意到“ñ”、“¿”或“é”等非传统字符被保存为非 utf-8 字符“�”。
我们恢复了前端和后端的早期版本,问题仍然存在,显然是通过新代码提交消除了问题。
如果我们在本地运行,没有任何问题。
当我们部署一个版本时,它似乎可以工作一段时间,直到我们刷新或尝试使用不同的浏览器,此时它会失败,并且似乎会破坏流程中的某些内容,并从此失败。
我们的实例化和查询非常简单:
mongoose
.set("strictQuery", false)
.connect(config.MONGO_DB_URI, {
enableUtf8Validation: true, // We initially didn't have this and the back end crashed, now it doesn't but it simply show the corrupted characters.
})
export const PostDBModel = mongoose.model<PostDB>("Post", postSchema);
const updatePost = await PostDBModel.findOneAndUpdate(
{ _id: _id },
{ title, content, category, tags },
{ new: true }
);
我们的堆栈:
这可能是什么原因?
这是由 Node 22.7.0 中的错误引起的。您需要降级,最好降级到 LTS 版本 20.x,而不是 22.x。 请参阅:https://github.com/nodejs/node/issues/54543