如何使用objection.js和knex.js向表中添加新对象?

时间:2017-09-13 07:42:11

标签: javascript knex.js objection.js

我想使用Objection.js和knex.js向表中添加一个新对象。我写了这段代码:

const Provider = require('../models/provider);

Provider
.query()
.where('ProviderName', name)
.then((data) => {
  if (data.length === 0) {
    Provider
      .query()
      .insert({ ProviderName: name,
        ProviderWebSite: webSite,
        ProviderContact: contact,
        ProviderStatus: status })
      .then(() => {
        res.render('results', { result: req.body });
      });
  } else {
    res.render('results1');
  }
})
.catch(() => {
  res.render('404');
});

页面仍然重新加载的问题,我没有获取页面results,表格仍然是空的。

1 个答案:

答案 0 :(得分:1)

您似乎错过了至少一个来自您的保证链的回复,但是为了得到错误,为什么失败,您需要打印出当您的catch块发出404时引发的错误。

这可能会为您提供更多信息:

const Provider = require('../models/provider');

Provider
  .query()
  .where('ProviderName', name)
  .first()
  .then(result => {
     if (!result) {
       return Provider
        .query()
        .insertAndFetch({
          ProviderName: name,
          ProviderWebSite: webSite,
          ProviderContact: contact,
          ProviderStatus: status 
        });
      }
      return result;
  })
  .then(() => {
    // before rendering views, making sure that correct data was fetched
    res.send('result ' + JSON.stringify(result, null, 2));
  })
  .catch(err => {
    // print out error to be able to debug your problem
    res.send('404 ' + err.stack);
  });