我是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返回?
答案 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对象执行的各种操作