gpt4 book ai didi

node.js - Mongoose 保存不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 02:22:58 24 4
gpt4 key购买 nike

刚刚开始使用 Node、Express 和 Mongoose。

Mongoose 版本:4.1.3

这是我的模型

  var mongoose = require('mongoose'),
bcrypt = require('bcrypt'),
ObjectId = mongoose.Schema.Types.ObjectId,
Timestamp = global.requireLib('timestamp');


var UserSchema = mongoose.Schema({
email: {type: String, required: true, unique: true},
password: {type: String, required: true},
first_name: {type: String},
last_name: {type: String},
username: {type: String, unique: true},
role: {type: String, required: true, default: 'user'},
created_at: {type: Number, required: true, default: Timestamp.now()},
updated_at: {type: Number, required: true, default: Timestamp.now()}
});


UserSchema.methods.hashPassword = function () {
salt = bcrypt.genSaltSync(13);
this.password = bcrypt.hashSync(this.password, salt);
}


UserSchema.methods.validate = function (password) {
return bcrypt.compareSync(password, this.password);
}


var User = mongoose.model('User', UserSchema, 'users');


module.exports = User;

这是“ Controller ”方法:

   create: function (req, res) { 
User.findOne({email: req.body.email}, function (err, user) {
if (err) {
res.error('UnknownError');
} else if (!user) {
user = new User(req.body);
user.hashPassword();
user.save(function (err) {
if (err) {
res.error('UnknownError');
} else {
res.success({id: user.id});
}
});
} else {
res.error('EmailExists');
}
});
},

请求:

curl -X POST -H 'Content-type: application/json' -d '{"email": "user@example.com", "password": "123"}' http://localhost:3000/users

路由工作正常,如果我在创建函数的开头添加console.log(),我将在控制台中看到它。如果我执行 console.log(user.save) - 我会发现它是一个函数。但MongoDB中没有任何记录。更新工作正常,如果我使用 upsert 进行更新 - 就可以了。

还剩6个小时,仍然找不到错误。

最佳答案

user.save(function (err) {
if (err) {
console.log(err);
res.send(err);
}
else {
console.log(user.id);
res.success({id: user.id});
}
});

更新代码并检查控制台中出现的错误

关于node.js - Mongoose 保存不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32164802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com