我正在尝试使用 mongoose 将数据保存到 mongodb,然后发送 json 响应。 这是我的代码
var userdata = {
name: req.body.name,
username: req.body.username,
email: req.body.email,
password: req.body.password,
};
var resdata = {};
var user = new User(userdata);
user.save(function (error) {
if(error) {
if (error.name === 'MongoError' && error.code === 11000) {
resdata = {
status: false,
errortype: 'db-error',
message: "Duplicate Key Error"
};
} else {
resdata = {
status: false,
errortype: 'db-error',
message: error.message
};
}
} else {
resdata = {
status: true,
message: "User Registered Successfully.."
};
}
});
res.send(resdata);
问题是我无法在保存回调之外访问 resdata 的值。它始终返回 {}。我该怎么办?
最佳答案
您必须在查询的回调中将数据发送到客户端,这是一个示例:
user.save(function (error) {
if(error) {
if (error.name === 'MongoError' && error.code === 11000) {
res.json({
status: false,
errortype: 'db-error',
message: "Duplicate Key Error"
});
} else {
res.json({
status: false,
errortype: 'db-error',
message: error.message
});
}
} else {
res.json({
status: true,
message: "User Registered Successfully.."
});
}
});
关于node.js - 无法访问 Mongoose 保存回调中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48345808/