Mongoose连接现有的DB

时间:2017-11-11 09:54:44

标签: javascript node.js mongodb express

我试图了解MongoDB的工作原理。 我使用以下集合创建了一个本地MongoDB:

 db.user.find().pretty()
{
    "_id" : ObjectId("5a05844833a9b3552ce5cfec"),
    "firstname" : "Emanuel",
    "lastname" : "Mars",
    "username" : "mae",
    "email" : "myEmail@email.ch",
    "passwort" : "mae",
    "role" : 1
}

现在我想用express连接到这个DB。 连接有效,但我没有得到任何数据。 这是我创建的模型:

var userSchema = new mongoose.Schema({
    firstname: { type: String },
    lastname: { type: String },
    username: { type: String },
    email: { type: String },
    passwort: { type: String },
    role: { type: Number }
}, { collection : 'user' });

module.exports = mongoose.model('user', userSchema);

这就是我想让收集用户中的所有用户:

var User = require('../../models/user');

User.find({}, function (err, user) {
 console.log('yes', user);
});

最后,它应该处理来自MongoDB的用户的登录过程。

解决: 我忘了在连接URL的末尾添加数据库名称。

1 个答案:

答案 0 :(得分:0)

const mongoose = require('mongoose');
const bcrypt   = require('bcrypt-nodejs');

var userSchema = new mongoose.Schema({
    firstname: { type: String },
    lastname: { type: String },
    username: { type: String },
    email: { type: String },
    passwort: { type: String },
    role: { type: Number }
}, { collection : 'user' });


userSchema.methods.generateHash = function(password) {
    return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
};

userSchema.methods.validPassword = function(password) {
    return bcrypt.compareSync(password, this.local.password);
};

module.exports = mongoose.model('user', userSchema);

// user.js的

var calledonetime = false;
$(function(){ 
    if(calledonetime === false)
    {
        calledonetime = true;
        $('html').css("overflow","hidden");
    }else
    {
        $('html').css("overflow","scroll");
        $('html').css("overflow-x","hidden");
    }
});