我是Node.js / Express / MongoDB和MVC方法的新手,我遇到了一些麻烦。我想要做的是将用户最近的登录时间保存到MongoDB。在进行原型设计时,我决定在用户登录时查看是否可以将属性dummy更新为值“dummy”。这是来自model / user.js的用户架构:
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.dummy.set(...)更新虚拟。当我在mongoHQ上检查我的托管数据库时,我甚至没有看到虚拟属性。接下来,当发生POST时,我尝试摆弄在control / user.js中执行的代码。我认为我可以在创建用户时更新虚拟,但没有运气。以下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);
}
});
});
在我继续前进之前,我希望有人能指出我正确的方向。
用户登录时更新虚拟字段的最佳方法是什么?
答案 0 :(得分:0)
我做了两件事来解决这个问题。首先,我删除了我试过鹰建议和宾果游戏的所有文件。真正奇怪的是,在从馆藏中删除文件之前,我尝试了鹰所建议的,并且没有运气。