ver*_*isu 1 node.js express knex.js
我的 knex 遇到了一些麻烦。
我收到一条错误消息
Cannot chain .first() on "first" query
Run Code Online (Sandbox Code Playgroud)
目前,我的控制器使用以下代码调用存储库中的函数:
exports.findByEmail = async (email) => {
return knex
.where({email: email})
.first();
}
Run Code Online (Sandbox Code Playgroud)
该代码第一次工作,获取正确的信息,但在连续调用时,会抛出上述错误。
我的 knex 已经用一张桌子实例化了。
我已经尝试过这种方法,将 then 链接到后面,但仍然得到相同的结果。https://github.com/knex/knex/issues/1355
exports.findByEmail = async (email) => {
return knex
.where({email: email})
.first()
.then(row => row);
}
Run Code Online (Sandbox Code Playgroud)
我是这样称呼它的:
let user = await CustomerRepo.findByEmail(req.body.email)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?谢谢
我已经知道我做错了什么了。这就是我实例化它的方式。
我像这样实例化了 knex:
const knexQB = require('knex')
const knex = knexQB(config)('table_name');
Run Code Online (Sandbox Code Playgroud)
并像上面那样称呼它
return knex.where().first();
Run Code Online (Sandbox Code Playgroud)
但这是错误的,因为我必须像这样实例化每个查询的 knex
return knex('table_name').where().first();
Run Code Online (Sandbox Code Playgroud)
我无法为整个类实例化它,因为 knex 的查询似乎不仅仅在返回结果后停止查询。
你懂得越多!再次感谢。
| 归档时间: |
|
| 查看次数: |
1397 次 |
| 最近记录: |