【发布时间】:2020-04-23 02:21:26
【问题描述】:
我一直在寻找和尝试很多,但无法弄清楚。我想将从 API 调用收到的 8 个变量插入到 SQLite 表中。一切都正确执行,但是当我查询表时,它显示null 的所有值。
我收到例如以下req 对象:
REQ object: { id: '22',
type: 'Buy',
userId: '2000',
userName: 'Daniela',
symbol: 'SPY',
shares: '15000',
price: '99.99',
timestamp: '2014-10-10 14:39:25' }
然后我分配新变量:
var id = req.query.id;
var tradeType = req.query.tradeType;
var userId = req.query.userId;
var userName = req.query.userName;
var symbol = req.query.symbol;
var shares = req.query.shares;
var price = req.query.price;
var timestamp = req.query.timestamp;
然后我把它放在一个sql 字符串中:
var sql =
"INSERT INTO trades (id, tradeType, userId, userName, symbol, shares, price, timestamp) VALUES (?,?,?,?,?,?,?,?)",
id,
tradeType,
userId,
userName,
symbol,
shares,
price,
timestamp;
最后,我把它写到桌子上:
var params = [];
db.all(sql, params, (err, rows) => {
if (err) {
console.log("Error when adding trade: ", err.message);
}
console.log("inserted ", rows);
});
当我用硬编码的字符串或数字替换变量时,一切正常,如下所示:
var sql =
"INSERT INTO trades (id, tradeType, userId, userName, symbol, shares, price, timestamp) VALUES (2,'Sell',100,'TestName','AAPL',100,99.99,'2014-10-12 13:20:30')"
我需要 sql 字符串是动态的,因为数据来自 API 调用。我读到这可能与 JavaScript 通过引用而不是按值分配对象引用这一事实有关。我尝试了 String(variable) 一切,但也没有用。
【问题讨论】:
标签: javascript node.js sqlite express