数据库在编译第一个查询时说未定义的绑定

时间:2019-02-22 12:00:42

标签: postgresql express heroku sqlite knex.js

我正在使用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找不到它。提前谢谢!

0 个答案:

没有答案