我正试图通过他们的
itemId
s和
quantities
进入我的
sqlite3
数据库中,然后通过将这些插入项与另一个表项的
s。
我把所有东西都包好了
Promise
他试图完成这项任务,但却没能让事情顺利进行。
function makeOrderHandler(request, response, data) {
insertOrder(request, response, data)
.then(() => updateItemNames(request, response, data))
.then(() => {
console.log("Updated items!");
})
.catch(err => {
console.log("Caught error: "+err);
}); // end promise chain
} // end makeOrderHandler
function insertOrder(request, response, data) {
return new Promise(function(resolve, reject) {
var db = require('./DBManager.js').getPool();
for(let i = 0; i < data['content'].length; i++) {
let unit = data['content'][i];
db.run("INSERT INTO orderedItems"
+ " (itemId, quantity) VALUES"
+ " ($itemId, $quantity);",
{
$itemId: unit.itemId,
$quantity: unit.quantity
},
function(err) {
if(!err) {
// Could do something here
} else {
reject("SQLite3 insert error: "+err);
} // end else
}); // end run
} // end for
resolve();
}); // end return
} // end makeOrder
function updateItemNames(request, response, data) {
return new Promise(function(resolve, reject) {
var db = require('./DBManager.js').getPool();
db.run("UPDATE orderedItems, menuItems SET orderedItems.itemName = menuItems.itemName, orderedItems.unitPrice = menuItems.unitPrice WHERE orderedItems.itemId = menuItems.itemId;",
function(err) {
if(err) {
reject("SQLite3 update error: "+err);
} else if(this.changes == 1) {
resolve();
} else {
reject("NOTHING DONE!!!");
} // end else
} // end error
); // end run
// resolve();
}); // end return
} // end updateItemNames
抛出的错误似乎来自
updateItemNames()
功能:
Caught error: SQLite3 update error: Error: SQLITE_ERROR: near ",": syntax error
.
orderedItems
不使用
WHERE
比较的条件
menuItems
这张桌子很有效。所以当我比较
orderedItems.itemId
menuItems.itemId
.