【发布时间】:2017-03-16 11:59:42
【问题描述】:
我有一个使用 Mongoose 的节点服务器,带有一个用户模式。我正在尝试编写注册函数,但出现以下错误:
TypeError:这不是构造函数
这发生在这段代码中:
var mongoose = require('mongoose');
var passwordHasher = require('password-hash-and-salt');
var User = new mongoose.Schema({
username: String,
hashedPassword: String,
email: String
});
User.statics.signup = function(un, pw, em, cb){
this.findOne( { $or:[ {'username': un}, {'email': em} ] }, function(err, person){
if (err) cb(false, "Server error");
else if (person == null){
passwordHasher(pw).hash(function(error, hash){
console.log(un, pw, em);
if (error) cb(false, "Server error");
var newUser = new User({ username: un, hashedPassword: hash, email: em});
^ (location of error)
newUser.save(function(err){
if (err) cb(false, "Server error");
else {
cb(true, null);
}
});
});
}
else if (person.email == em && person.username == un) cb(false, "Username and email are taken");
else if (person.email == em) cb(false, "Email is taken");
else if (person.username == un) cb(false, "Username is taken");
});
}
var model = mongoose.model('User', User);
module.exports = model;
我对 Javascript 不是很熟悉,所以这可能是我在方法的其他地方漏掉的一个简单的错字。但是,我确实研究了任何我能找到的类似错误的问题,建议的更改并没有解决问题。
【问题讨论】:
标签: javascript node.js mongodb express typeerror