【发布时间】:2019-05-29 04:06:54
【问题描述】:
我试图了解pool.query 和client.query 以及两者之间的区别以及何时使用哪个。
我有一个快速应用程序,它在某个端点运行以下代码。
// I am just using params for to a quick setup
router.get("/:username/:password", (req, res) => {
const { username, password } = req.params;
// crypt & gen_salt function from pgcrypto
client // *** here ***
.query(
` SELECT username, email, password FROM users
WHERE users.username = $1
AND users.password = crypt($2, password)
`, [username, password]
)
.then(user => {
console.log("Users ==>", user.rows);
const userCount = user.rows.length;
if (userCount < 1) {
res.status(204).json({ userFound: "No User Found" });
} else {
res.status(200).json(user.rows[0]);
}
})
.catch(err => console.log(err));
});
// index.js (starting point of application)
require("dotenv").config({ debug: true });
const app = require("./middleware");
// Port Listener
app.listen(process.env.PORT, () =>
console.log(
"Server running on PORT <======= " + process.env.PORT + " =======>"
)
);
我点击了 API 端点,两种方式都返回了完全相同的结果,我已经读到使用池而不是实例化一个新的客户端实例更好,但老实说,我不确定这是否是真的,因为 Node 应该保留相同的客户端实例,因为它的导出方式超出了我当前的知识库。我在这个主题上找到的阅读材料很少,所以如果有人有任何他们会推荐的文章,那么我也很乐意去看看。
【问题讨论】:
标签: node.js postgresql express client connection-pooling