【发布时间】:2019-03-08 11:52:11
【问题描述】:
我想使用 knex 和 MySQL 进行计数并将计数值保存到变量中。下面是我的代码的 sn-p。我使用邮递员处理请求
router.post('/insertNewProject', (req, res) => {
knex
.raw('SELECT COUNT(id_proj) FROM project WHERE projectName=?', [req.body.projectName])
.then((count) => {
res.json(count[0])
})
.catch(() => {
res.json({ success: false, message: "Please try again later." })
})
})
这将返回我:
[
{
"COUNT(id_proj)": 0 //or 1 of the record is in table
}
]
我的问题是如何将结果存储到变量中?根据select count 的结果,我想如果它是=0 进行查询,如果它大于0,则进行另一个查询。感谢您的宝贵时间!
【问题讨论】:
-
这很简单。您只需访问
count(ip_proj)值。然后你可以存储在一个变量中。试试这个var result = count[0].COUNT(id_proj); -
我已经尝试过了,但它不起作用。我试图把它放在
then中,但结果将是Please try again later.。你建议在哪里写? -
好的..!!@Tenzolinho
-
阅读这篇文章也许会有所帮助zetcode.com/javascript/knex
-
您的
COUNT(id_proj)被用作 javascript 变量名,但由于括号的原因,它无法通过 javascript 点表示法访问。您可以使用:count[0]['COUNT(id_proj)']访问它,也可以更改查询以使用不同的变量名称,例如:SELECT COUNT(id_proj) AS CNT。 (虽然我更喜欢@saka7 的查询语法,因为它删除了查询的raw()部分。)