node.js - postgres中的查询问题
问题描述
我在 Node.js 应用程序中使用以下代码片段来尝试查询(本地)postgres 数据库:
var conString = "postgres://user:password@localhost:5432/mydatabase";
var client = new pg.Client(conString);
client.connect(function(err) {
if(err) {
return console.error('could not connect to postgres', err);
}
client.query("SELECT * FROM users WHERE name = $1 AND cred = $2", [String(req.body.usr), String(req.body.pword)], function(err, result) {
if(err) {
return console.error('error running query', err);
}
if (typeof result.rows[0] === "undefined") {
console.log("No user/password determined in DB for login attempt");
} else {
} //user/password is 'undefined' (NOT found in database)...OR NOT...
client.end();
});
});
查询运行时我收到错误...我相信问题可能是我的查询调用中的参数数量...?如果是这种情况(或者是其他一些语法问题),任何人都可以告诉我应该如何更改代码以正确执行查询......?
我只需要从表单(req.body.usr 和 req.body.pword)中获取 2 个(用户提供的)结果,并将它们与数据库表“用户”进行比较,以确定凭据是否正确。我已经相信数据库连接可以正常工作。非常感谢任何建议。我提前谢谢你。
解决方案
改变:
client.query("SELECT * FROM users WHERE name = $1 AND cred = $2", [String(req.body.usr), String(req.body.pword)], function(err, result) {...
至:
const query = {
text: "SELECT * FROM users WHERE name = $1 AND cred = $2",
values: [String(req.body.usr), String(req.body.pword)]
};
client.query(query, function(err, result) {
推荐阅读
- r - 在数据框中创建计数器,该计数器根据值或新 ID 的变化进行重置
- reactjs - 如何在视图中呈现具有不同 URL 的灯箱?
- php - 通过 shell_exec() 从 git pull 查看更多信息
- android - 无法运行 react-native 项目 android 版本
- javascript - 获取静态视频/mp4 文件的 blob URL,video.load() 抛出 ERR_REQUEST_RANGE_NOT_SATISFIABLE
- python - 忽略某些键的两个字典列表之间的区别
- python-3.x - 如何在odoo中显示在“树”类型的模型中生成的表格?
- git - 创建构建管道的最佳方法
- javascript - 滚动通过元素时更改状态的方法是什么?
- hdfs - 为什么重启flink程序后有很多in-progress文件?