按特定代码查找结果为null

时间:2013-05-31 10:40:31

标签: javascript node.js mongodb pug

我是Nodejs的新手,我正在尝试通过提交代码并交叉检查记录来查找我的数据库(mongo)中的记录,看它是否存在。

我并不是很清楚如何处理这个问题来说明“有代码,请继续”和“没有代码”。

到目前为止,这是我摆弄的结果:

userProvider.js:

UserProvider.prototype.findByCode = function(code, callback) {
    this.getCollection(function(error, user_collection) {
        user_collection.findOne({code: code}, function(error, result) {
            callback(error, result)
        });
    });
}

属于userProvider.js的get集合:

UserProvider.prototype.getCollection= function(callback) {
  this.db.collection('users', function(error, user_collection) {
    if( error ) callback(error);
    else callback(null, user_collection);
  });
};

app.js:

app.post('/game/code', function(req, res) {
    if (req.param('code')) {
        userProvider.findByCode(req.param('code'), function(error, result) {
            console.log(error);
            console.log(result);
        });
    }
});

提交代码的玉石表格:

extends layout

block content
    h1= "Gimme a code"
    div
        form( method="post")
            div
                div
                    span.label code :
                    input(type="text", name="code", id="code")
                div
                    input(type="submit", value="Verbind")

控制台记录param('code')会产生代码。所以我很确定一个人的实力。那么为什么有一个null返回?

1 个答案:

答案 0 :(得分:0)

从问题来看,你没有说'null'返回的位置。我也是nodejs的新手,但是我在你的代码中注意到了:

app.post('/game/code', function(req, res) {
    if (req.param('code')) {
        userProvider.findByCode(req.param('code'), function(error, result) {
            console.log(error);
            console.log(result);
        });
    }
});

并且您没有调用'res'对象。你应该尝试这样的事情:

app.post('/game/code', function(req, res) {
    if (req.param('code')) {
        userProvider.findByCode(req.param('code'), function(error, result) {
            if(error) 
              res.send(404, 'There is no code');
            else {
              console.log(result);
              res.send('There is a code:'+result);
            }
        });
    }
});

查看http://expressjs.com/api.html#res.status了解使用res对象执行的各种操作