快速代码:
var userSchema = new mongoose.Schema({
username: String,
password: {type: String, select: false}
});
userSchema.methods.checkPassword = function(password, done) {
console.log(password); // Password to check
console.log(this.password); // stored password
...
};
Run Code Online (Sandbox Code Playgroud)
我不希望默认情况下可以访问该密码,但是我需要一种在验证用户身份之前对用户输入的密码进行检查的方法。我知道我可以对数据库进行查询以包含这些值,但是我对如何访问架构方法本身的hidden属性有些迷惑。this
在方法本身只是返回的查询,所以似乎无法访问?我应该在checkPassword()
其他地方执行此功能吗?
这是我的模型:
'use strict';
var nested = new Schema({
name: String
});
var test = new Schema({
url : {
type : String,
// First validation
validate : [validator.isURL, 'Invalid URL']
},
array : [
{
type: nested,
// Second Validation
validate: [function(value) {console.log("CALLED"); return value.length <=3;}, 'Too long']
}
]
});
module.exports = Parent.discriminator('Test', test);;
Run Code Online (Sandbox Code Playgroud)
这是我创建新文档的方法:
Test.findOrCreate({url: url}, function(err, model, created) {
if (created) {
model.array = whatever;
}
model.save(function(err) {
if (err) {return res.status(422).json(err);}
next();
});
});
Run Code Online (Sandbox Code Playgroud)
这是更新:
Test.findByIdAndUpdate(id, …
Run Code Online (Sandbox Code Playgroud) 可能一直都在问这个问题,但是我在阳光下尝试了所有方法,却找不到解决方案。
我创建了一个回购协议,以便更轻松地获取帮助。您可以克隆它,运行npm install
,然后npm start:dev
在http:// localhost:8080上看到一个快速的本地服务器。
它可以正常工作,并且当我更改文件(例如src/components/Note/Note.css
)时,应用程序会重新加载。但是,我只想重新加载组件,而不是整个页面。我不确定自己在做什么错。任何帮助将不胜感激!