我正在使用SQLite3开发后端,并使用postgresQL部署到heroku,数据库在开发时工作正常,一切都按预期工作,现在我得到一个错误提示
2019-02-22T11:51:48.768183+00:00 app[web.1]: error Error: Undefined
binding(s) detected when compiling FIRST query: select * from "users"
where "id" = ? limit ?
2019-02-22T11:51:48.768200+00:00 app[web.1]: at QueryCompiler_PG.toSQL
(/app/node_modules/knex/lib/query/compiler.js:85:13)
但是,没有未定义的绑定
我的架构看起来像
exports.up = function (knex, Promise) {
return knex.schema.createTable('users', users => {
users.increments('id')
users.string('name').notNullable();
users.string('email').notNullable();
users.string('username').notNullable();
users.string('password').notNullable();
users.string('role').notNullable();
})
};
查询类似于
router.post('/signup', (req, res) => {
const user = req.body;
const hashedPass = bcrypt.hashSync(user.password, 12)
user.password = hashedPass;
var username = user.username
db.insertUser(user)
.then(ids => {
const id = ids[0];
db.findByID(id)
.then(user => {
const token = (newToken(user));
res.status(200).json({ id: user.id,
username:username,token:token});
})
.catch(err => {
console.log("error", err);
res.status(500).json({ error: 'Something went wrong' })
})
})
.catch(err => {
res.status(500).send(err);
});
});
最后,辅助功能是...
findByID: (id) => {
return db('users').where('id', id).first();
}
您知道会导致这种错误的原因吗,我尝试在此处进行搜索,但是Google找不到它。提前谢谢!