javascript - Mongoose .findOne 错误返回找到的模型?
问题描述
所以我试图通过使用猫鼬中的 findOne 函数来访问这个帐户,我试图控制台记录错误,但错误只是找到了正确的模型。一旦我找到了我想要访问的正确模型架构中的嵌套对象之一,因此我可以编辑该值。
我不确定为什么会发生这种情况,下面我将代码以及登录到控制台的错误放在下面,如果需要,我可以提供更多。
let accountSchema = mongoose.Schema({
username:{
type: String,
required: true,
index: true,
unique: true,
},
password:{
type: String,
required: true,
},
money:{
type: Number,
},
inventory: { type: [{
weed: { type: Number },
coke: { type: Number },
}]},
});
mp.events.addCommand('coke', (player) => {
console.log(player.name);
Account.findOne({username: 'a'}, function(acc, err) {
if(err) return console.log(err);
console.log(acc.username);
acc.inventory[1] = acc.inventory[1] + 1;
acc.save(function(err){
if(err) return player.outputChatBox('Not logged in');
player.outputChatBox('Added 1 coke');
});
});
});
(Console) {"_id":"5b6acbbbc285477e39514cb9","username":"a","password":"$2a$10$XABqooqFRINYVdJ79.i2E.5xdpitRrfZxUBmIPAZjjaXKvvLDc2y2","money":5000,"inventory":[{"_id":"5b6acbbbc285477e39514cbb","weed":0},{"_id":"5b6acbbbc285477e39514cba","coke":0}],"__v":0}
解决方案
该.findOne
方法的回调函数具有以下签名:
function (err, obj) {
}
您以错误的顺序使用参数 - 错误对象是第一个参数,找到的对象是第二个。
推荐阅读
- raspberry-pi - Raspberry, check electric current
- json - Webpack 4:使用文件加载器在输出中包含许多 JSON 文件
- c++ - 调用模板参数 constexpr 方法?
- ios - 声称的促销代码内容仅在其他设备上可用
- apache-spark - Spark SQL 查询历史
- storage - 无法将 Netapp(8.1.4P1 7-Mode)与 jdk1.8.0_181 连接
- firebase - Firebase 规则通配符和子项比较
- python - AWS Glue 作业失败并出现错误:“写入行错误”
- android - 无法使用 android studio 3.1.4 在 mac 中创建和同步 android 项目
- alfresco - 关闭/禁用自定义文件夹的继承权限