使用ExpressJS/Mongoose更新MongoDB中的值



我对Node.js/Express/MongoDB和MVC方法非常陌生,遇到了一些麻烦。我想做的是保存用户最近登录MongoDB的时间。在进行原型设计时,我决定在用户登录时查看是否可以将属性dummy更新为值"dummy">

var Mongoose = require('mongoose');
var Schema = Mongoose.Schema;
var Types = Mongoose.Types;
var sUser = new Schema({
name : String,
hash : String,
salt : String,
dummy: String
});
sUser.virtual('password').set(function(pass) {
//TODO
this.hash = pass;
});
var mUser = Mongoose.model('user', sUser);
module.exports  = mUser;

我没有写这个代码,我正在努力从中学习。我尝试了一些事情,但没有成功。首先,我想也许我可以在模型中使用sUser.domy.set(…)更新dummy。当我在mongoHQ上检查我的托管数据库时,我甚至没有看到伪属性。接下来,当POST发生时,我尝试篡改control/user.js中执行的代码。我以为我可以在创建用户后在那里更新dummy,但运气不好。POST处理代码中的代码段如下:

app.post("/user", function(req, res, next) {
var u = new User(req.body);
u.save(function(err) {
if (err) {
next(err);
return;
}
req.session.user = u.toObject();
if(req.accepts('html')) {
console.log('redirect');
res.redirect(302, '/cmd');
} else {
console.log(u);
res.json(201, u);
}
});
});

在我走得更远之前,我希望有人能给我指明正确的方向。

当用户登录时,更新伪字段的最佳方式是什么?

我做了两件事来解决这个问题。首先,我删除了收藏中的所有文件,我尝试了霍克的建议和宾果游戏。真正奇怪的是,在从收藏中删除文件之前,我尝试了霍克的建议,但没有成功。

最新更新