使用AJAX

时间:2015-12-20 00:32:56

标签: javascript mongodb authentication login

我花了几个小时环顾Stack Overflow,但我发现太多文章无法解决我的问题。对MongoDB来说还是有点新鲜。

基本上,我试图让我的网站的登录部分运行。我已经在MongoDB中拥有一个名为" accounts"一个样本用户看起来像这样:

> db.accounts.findOne()
{
    "_id" : ObjectId("5675e90bcb76f3710ff2d0d1"),
    "username" : "jose",
    "password" : "8943",
    "email" : "josectello@gmail.com",
    "__v" : 0
}

在我的登录页面上,我收集了用户名和密码(假设用户已经注册),将它们存储在变量中并使用以下代码检查用户是否存在。此代码基于其他Stack Overflow article的答案。

var mongoose = require('mongoose');

$(function() {
  $('#login').on('click', function(e) {
    e.preventDefault();
    var username = $('#name').val();
    var password = $('#password').val();

    console.log("About to check for name and pw");
    mongoose.connect('mongodb://localhost/MyDataBase', function(err, db) {
    if(err) throw err;
    var collection = db.collection('accounts');

    // does user exist
    collection.findOne({username : username}, function(err, doc){
        if(err) throw err;
        if(doc)
            console.log("Found: " + username + ", pass=" + doc.password);
        else
            console.log("Not found: " + username);
        db.close();
    });
    });

  });
});

编辑:第一个console.log运行:"即将检查名称和pw"。 然后我得到错误,"要求未定义"。我是否将服务器端JS与客户端混合?我的server.js文件中也需要mongoose ...我可以执行module.export以便能够在当前文件中使用mongoose连接到数据库吗?

提前谢谢!

2 个答案:

答案 0 :(得分:1)

使用getCollection

var collection = db。 getCollection ('accounts');

答案 1 :(得分:0)

如果您尝试在浏览器中使用require('mongoose'),则应使用Browserify。 CommonJS中指定了require规范。并且,node.js和Browserify实现了这一点。

看看这个: http://mongoosejs.com/docs/browser.html