小编Ana*_*ued的帖子

编译Mongoose后无法覆盖模型

不确定我做错了什么,这是我的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)

model mongoose mongodb node.js express

80
推荐指数
14
解决办法
8万
查看次数

在nodejs中区分b/w event.on()和event.once()

我正在测试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偏移量应该更频繁地设置,但它只会在一分钟内发生一次或两次.

child-process node.js eventemitter

27
推荐指数
2
解决办法
1万
查看次数

nodejs中的简单登录页面使用express和带mongodb的护照

我创建了一个简单的登录表单,使用Jade和Express at/login,表单数据通过POST发送到/ login

起初它只是基于字符串的匹配(如果用户名== &&密码==)然后重定向到/ home或重定向到/ login

简单.

现在我想让它存储在mongodb数据库中的数据库驱动程序,用户名和密码,匹配db的用户名密码并执行程序.

我希望使用passportJS,但我完全不知所措,从创建数据库到配置护照.

有人可以帮助我如何制作一个简单的数据库驱动的登录页面?我对nodejs的东西很新.任何帮助都会受到重视

login mongodb node.js express passport.js

10
推荐指数
1
解决办法
3万
查看次数

PassportJS req.user发送所有用户数据

我正在使用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)

servlets node.js express passport.js

5
推荐指数
1
解决办法
746
查看次数