我想使用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
,表格仍然是空的。
答案 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);
});