检查mongo数据库中是否存在post输入

时间:2016-03-03 17:36:01

标签: javascript node.js mongodb mongoose

我正在使用以下节点js将值存储在数据库中......

//connect to database
db.on('error', console.error);
db.once('open', function() {

    router.post('/register', function(request, response) {
        //create schema
        var Schema = new mongoose.Schema({
            email    : String,
            password : String,
            display  : String   
        });

        var User = mongoose.model('User', Schema);
        //add POST values to schema
        new User({
            email: request.body.rEmail,
            password: request.body.rPwd,
            display: request.body.rDName
        //store in database
        }).save(function(err, doc) {
        if (err)
            throw err;
        else 
            console.log('save user successfully...');
        });
    });
 });

在这个文件中,我想包含另一个POST方法,以便我可以检查数据库中是否存在输入值。

我有另一种形式在玉石中看起来像这样......

form(class="inputs", action="/login", method="post")
  input(type="text", name="email",class="form-control", id="emailLogin", placeholder="Queen's Email")
  input(type="submit",name = "homePage" class ="loginButton" value="Log In" id="loginButton")

提交name=email后,我想检查email下的数据库中是否存在该值,该值在架构request.body.rEmail中高于User

我知道我必须添加另一个看起来像这样的函数......

router.post('/login', function(request, response) {
\\no idea

但我不知道要在里面添加什么。在php中这相对容易,但研究节点经常导致我不清楚解决方案。

1 个答案:

答案 0 :(得分:0)

email: {type: String, required: '{PATH} is required.', unique: true}

如果你这样设置你的模型,你可以说它在这里是独一无二的。如果您尝试插入副本,Mongoose将返回错误。

http://mongoosejs.com/docs/2.7.x/docs/schematypes.html