不确定我做错了什么,这是我的check.js
var db = mongoose.createConnection('localhost', 'event-db');
db.on('error', console.error.bind(console, 'connection error:'));
var a1= db.once('open',function(){
var user = mongoose.model('users',{
name:String,
email:String,
password:String,
phone:Number,
_enabled:Boolean
});
user.find({},{},function (err, users) {
mongoose.connection.close();
console.log("Username supplied"+username);
//doSomethingHere })
});
Run Code Online (Sandbox Code Playgroud)
这是我的insert.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/event-db')
var user = mongoose.model('users',{
name:String,
email:String,
password: String,
phone:Number,
_enabled:Boolean
});
var new_user = new user({
name:req.body.name,
email: req.body.email,
password: req.body.password,
phone: req.body.phone,
_enabled:false
});
new_user.save(function(err){
if(err) console.log(err);
});
Run Code Online (Sandbox Code Playgroud)
每当我试图运行check.js时,我都会收到此错误
编译后无法覆盖'用户'模型.
我知道这个错误是由于Schema不匹配造成的,但我看不出这是怎么回事?我对mongoose和nodeJS很新.
以下是我从MongoDB的客户端界面获取的内容:
MongoDB shell version: 2.4.6 connecting to: test …Run Code Online (Sandbox Code Playgroud) 我正在测试plus_one应用程序,在运行它时,我只想在event.once()和event.on()上澄清我的概念.
这是plus_one.js
> process.stdin.resume();
process.stdin.on('data',function(data){
var number;
try{
number=parseInt(data.toString(),10);
number+=1;
process.stdout.write(number+"\n");
}
catch(err){
process.stderr.write(err.message+"\n");
}
});
Run Code Online (Sandbox Code Playgroud)
这是test_plus_one.js
var spawn=require('child_process').spawn;
var child=spawn('node',['plus_one.js']);
setInterval(function(){
var number=Math.floor(Math.random()*10000);
child.stdin.write(number+"\n");
child.stdout.on('data',function(data){
console.log('child replied to '+number+' with '+data);
});
},1000);
Run Code Online (Sandbox Code Playgroud)
在使用child.stdin.on()时我得到的maxlistener偏移警告很少但是在使用child.stdin.once()时不是这种情况,为什么会发生这种情况?
是因为child.stdin正在听以前的输入吗?但是在这种情况下,maxlistener偏移量应该更频繁地设置,但它只会在一分钟内发生一次或两次.
我创建了一个简单的登录表单,使用Jade和Express at/login,表单数据通过POST发送到/ login
起初它只是基于字符串的匹配(如果用户名== &&密码==)然后重定向到/ home或重定向到/ login
简单.
现在我想让它存储在mongodb数据库中的数据库驱动程序,用户名和密码,匹配db的用户名密码并执行程序.
我希望使用passportJS,但我完全不知所措,从创建数据库到配置护照.
有人可以帮助我如何制作一个简单的数据库驱动的登录页面?我对nodejs的东西很新.任何帮助都会受到重视
我正在使用PassportJS本地策略进行用户身份验证,它的工作完全正常.但是,当我在任何经过身份验证的页面上尝试console.log(req.user)时,我会获得当前登录用户的所有数据库条目详细信息.这是正常的吗?包括哈希密码
{
name: 'Test',
email: 'vxxxxx@gmail.com',
password: '$2a$10$aw2aMtXtrmKHi.kd97c0NeMOu6Y0hlcM4xk2VuqfneLYdEkc676eq',
phone: 9xxxxx6,
_enabled: true,
_id: 5253f326003e55f028000001,
__v: 0
}
Run Code Online (Sandbox Code Playgroud)
我的本地策略定义如下.
passport.use(new strategy(function(username, password, done) {
User.findOne({ "email": username }, function(err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false, { message: 'Unknown user ' + username }); }
if(user._enabled==false) return done(null,false,{message: "Dear "+user.name+", Please verify your email first!"});
if(bcrypt.compareSync(password,user.password)){
return done(null, user);
app.set("userEmail",username);
}
else {
return done(null, false, { message: 'Invalid password' });
}
db.close();
}) …Run Code Online (Sandbox Code Playgroud) node.js ×4
express ×3
mongodb ×2
passport.js ×2
eventemitter ×1
login ×1
model ×1
mongoose ×1
servlets ×1