我有两个架构设置为:
var mongoSchema = mongoose.Schema;
// create schema
var UserSchema = new mongoSchema({
name: {
type: String,
unique: true,
required: true
},
password: {
type: String,
required: true
},
LockID: {
type: String,
required: false
},
firstname: {
type: String,
},
updated: {
type: Date,
default: Date.now
}
});
var LockLogSchema = new mongoSchema({
lockTime: {
type: String,
},
updated: {
type: Date,
default: Date.now
},
name: {
type: String,
required : true
},
location:{
type: String
}
});
module.exports = mongoose.model('Logs',LockLogSchema);
module.exports = mongoose.model('userLogin',UserSchema);
然而,当我尝试保存到' Logs'请求失败,但我可以保存到' userLogin'精细。
我的保存方法是:
router.post('/unLock', function(req, res) {
var now = moment().toDate();
var db = new mongoOp({
name: req.body.name,
lockTime: now
});
// save the user
console.log('create new user: ' + db);
db.save(function(err) {
if (err) {
return res.status(500).json({
success: false,
});
}
else
{
return res.status(500).json({
success: true,
});
}
});
}
通过HTTP POST调用。
我认为问题在于将两个模型导出到module.exports
。但是,如果我不这样做,我如何使用路由器POST方法?
谢谢!
答案 0 :(得分:0)
我设法自己解决这个问题。
我正在错误地使用module.exports,因为这是用第二个声明覆盖导出。
这是应该如何设置的:
var Logs = mongoose.model('Logs', LockLogSchema);
var userLogin = mongoose.model('userLogin', UserSchema);
module.exports = {
Logs: Logs,
userLogin: userLogin
};
然后可以像这样访问模式:
var mongoOp = require("../model/mongo");
mongoOp.userLogin.findOne({}); //to find something
var db = new mongoOp.userLogin({}); //for saving