0
我有以下模式。当我尝试注册一个新的user
时,mongodb用最新注册的用户名替换最后注册的用户名。对于该条目,ObjectId保持不变。不知道为什么这样做。没有错误。表格mongoose Mongodb没有正确插入
我ed在后处理api处处可见,一切都很好。该条目在数据库中可见,但已取代后者。这个问题可以是我的模式设计吗?有些东西告诉我,这是我在模式定义中制作所有String
的方式。我正在用MEAN建造。
var AnswerSchema = Schema({
response : { type: String, default:null},
question : { type: String, ref: 'Question'},
employee : { type: String, ref: 'User'}
})
var QuestionSchema = Schema({
title : String,
});
var UserSchema = Schema({
username : String,
});
module.exports = mongoose.model('Answer', AnswerSchema);
module.exports = mongoose.model('Question', QuestionSchema);
module.exports = mongoose.model('User', UserSchema);
API
var Question = require('../models/questions');
var User = require('../models/users');
var Answer = require('../models/answers');
var jwt = require('jsonwebtoken');
var secret = "markov";
var user = new User();
var question = new Question();
var answer = new Answer();
// Export routes to the main server.js file
module.exports = function(router) {
/* ====================
User Registration Route
==================== */
router.post('/users', function(req, res) {
user.username = req.body.username;
if (req.body.username == null) {
res.json({ success: false, message: 'Ensure username is provided' });
} else {
// If criteria is met, save user to database
user.save(function(err) {
console.log(user.username);
if (err) {
res.json({ success: false, message: 'Username already exists!' });
} else {
res.json({ success: true, message: 'user created!' }); // If all criteria met, save user
}
});
}
});
'user.username'看起来非常可疑。实例在哪里创建?这当然不在'.post()'的范围内。某处你正在调用'var user = new User()',那个实例就在附近。所以相同的信息就像你所描述的一样。显示代码,包括您实际进行该呼叫的位置。但是,你真的应该简单地在这个范围内调用'new User()'。 –
我已经添加了代码。我在顶部调用'var user = new User()'。 –
所以不要那样做。在'.post()'和同一个模块中的其他请求方法中调用'new User()'“。这不像“进口”。你正在声明一个变量,并且范围很重要。所以你需要一个“新”的每一个请求。那么你不会有这个问题。 –