准备好的语句 node-postgresql 错误,结果为空
prepared statements node-postgresql error with null result
我是 node.js 和 postgresql 的新手。我已经与 postgres 数据库连接并执行一些测试代码。在我要使用准备好的 statements.am 创建一个示例登录脚本之后。如果用户存在 return username else return message "invalid username or password"。如果用户名和密码正确,则为 return 用户名。但不会显示任何数据,因此无法显示 return 消息。我的看法是,执行cliend.end()函数后控件会崩溃。
这是我的代码
UserLogin.get = function(userName, callBack) {
pg.connect(pgConString, function(err, client, done) {
if (err) {
callBack("DB connection failed. " + err, null);
return;
}
var selectQuery="SELECT * from " + TABLE + " WHERE userName=()";
var query=client.query({
text:selectQuery,
values:[userName],
name:"selectQuery"});
query.on("error", function (error) {
callBack("DB fetch failed. Error Message: " + err, null);});
query.on('row', function(row) {
callBack(null, row);});
query.on("end", function (result) {
client.end();
return;
});
});
}
if row is empty, not return to callback. if row_result is not empty, its working fine.. How...???? any idea...???
您的代码
query.on('row', function(row) {
callBack(null, row);
});
表示每次查询从数据库中获取 1 行时都会调用回调。在查询有 0 个结果的情况下,永远不会调用回调。
终于找到答案了。谢谢你的支持
UserLogin.get = function(userName, callBack) {
pg.connect(pgConString, function(err, client, done) {
if (err) {
callBack("DB connection failed. " + err, null);
return;
}
var selectQuery="SELECT * from " + TABLE + " WHERE userName=()";
var query=client.query({
text:selectQuery,
values:[loginId],
name:"selectQuery"});
query.on("error", function (error) {
callBack("DB fetch failed. Error Message: " + err, null);return;});
query.on('row', function(row,result) {
result.addRow(row);
});
query.on('end', function (result) {
callBack(null,result.rows);
client.end();
return;
});
});
}
在我的旧代码中,每次查询从数据库中获取 1 行时都会调用回调。我只是改变了逻辑
我是 node.js 和 postgresql 的新手。我已经与 postgres 数据库连接并执行一些测试代码。在我要使用准备好的 statements.am 创建一个示例登录脚本之后。如果用户存在 return username else return message "invalid username or password"。如果用户名和密码正确,则为 return 用户名。但不会显示任何数据,因此无法显示 return 消息。我的看法是,执行cliend.end()函数后控件会崩溃。
这是我的代码
UserLogin.get = function(userName, callBack) {
pg.connect(pgConString, function(err, client, done) {
if (err) {
callBack("DB connection failed. " + err, null);
return;
}
var selectQuery="SELECT * from " + TABLE + " WHERE userName=()";
var query=client.query({
text:selectQuery,
values:[userName],
name:"selectQuery"});
query.on("error", function (error) {
callBack("DB fetch failed. Error Message: " + err, null);});
query.on('row', function(row) {
callBack(null, row);});
query.on("end", function (result) {
client.end();
return;
});
});
}
if row is empty, not return to callback. if row_result is not empty, its working fine.. How...???? any idea...???
您的代码
query.on('row', function(row) {
callBack(null, row);
});
表示每次查询从数据库中获取 1 行时都会调用回调。在查询有 0 个结果的情况下,永远不会调用回调。
终于找到答案了。谢谢你的支持
UserLogin.get = function(userName, callBack) {
pg.connect(pgConString, function(err, client, done) {
if (err) {
callBack("DB connection failed. " + err, null);
return;
}
var selectQuery="SELECT * from " + TABLE + " WHERE userName=()";
var query=client.query({
text:selectQuery,
values:[loginId],
name:"selectQuery"});
query.on("error", function (error) {
callBack("DB fetch failed. Error Message: " + err, null);return;});
query.on('row', function(row,result) {
result.addRow(row);
});
query.on('end', function (result) {
callBack(null,result.rows);
client.end();
return;
});
});
}
在我的旧代码中,每次查询从数据库中获取 1 行时都会调用回调。我只是改变了逻辑