如何使用 objection.js 和 knex.js 将新对象添加到 table?
How to add a new object to a table using objection.js and knex.js?
我想使用 Objection.js 和 knex.js 将新对象添加到 table。我写了这段代码:
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
并且 table 仍然是空的。
您的 promise 链中似乎至少遗漏了一个 return,但要了解失败的原因,您需要打印出当您的 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);
});
我想使用 Objection.js 和 knex.js 将新对象添加到 table。我写了这段代码:
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
并且 table 仍然是空的。
您的 promise 链中似乎至少遗漏了一个 return,但要了解失败的原因,您需要打印出当您的 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);
});