【发布时间】:2014-01-10 10:11:29
【问题描述】:
我想检查一个用户是否已经在我的数据库中(sqlite3)。
- 如果用户存在:返回 500(错误!!)
- 如果用户不存在:返回200(ok)
这就是我的脚本:服务器端的 node.js+express。
app.post('/adduser', function(req,res){
db.serialize(function(){
var user = req.body.user;
var password = req.body.password;
var err = false;
db.each("SELECT name FROM users", function(err, row) {
if (user == row.name) {
console.log(row.name);
err = true;
console.log("a: " +err);
res.send(500);
return false;
}
});
if (err==false) {
console.log("b: " +err);
res.send(200);
}
})
});
无论我是否提交现有用户名,我总是得到成功代码 200。这是来自服务器的日志:
b: false
testuser
a: true
我输入了一个现有用户,但它得到了代码 200。奇怪的是,我在 a 之前得到了 b。
【问题讨论】:
-
Javascript 没有被编译它被运行,它没有被转换成任何东西,所以“编译”这个词是不正确的。
-
如果用户存在,为什么会返回 500(内部服务器错误)。
-
-
err是数据库错误,而不是找不到记录。改为修改您的第一个if。 -
我想通知我的客户,该用户已经在我的数据库中并且无法添加。因此我使用 500 代码
标签: javascript jquery node.js express sqlite