我正在使用MySQL构建Node.js API。
如何在MySqL中进行批量插入,以便能够使用 来自我的身份验证中间件的结果?
这就是我提到的这个问题。我有一条路线:
api.post('/', authenticate, (req, res) => {
db.query(`INSERT INTO test_workouts (assigned_date, completed, name, length, userid)
VALUES ?;`, [req.body], (error, workouts) => {
if (error) {
res.send({ error });
};
res.send({ Message: 'Successfully Added Workout' })
});
});
您可以看到我有一个名为authenticate
的中间件。这是为了检查在Authorization标头中发送的JWT的验证。我可以解码此JWT并在此INSERT查询中使用其中的userId值。
我从req.user
的身份验证查询中获取了一个参数,该查询具有已解码的JWT令牌。但是,我不知道如何将其添加到我从API POST收到的原始值数组中。
我在API中发布的数据如下所示:
INSERT INTO test_workouts (assigned_date, completed, name, length, userid)
VALUES ('2018-04-03 12:00:00PM', '0', 'Lower Body', '90', '3'), ('2018-04-04 12:00:00PM', '0', 'Upper Body', '90', '3'), ('2018-04-05 12:00:00PM', '0', 'Full Body', '90', '3');
但是,我想要做的是用来自JWT的userId替换其中每一个(' 3')中的最终值。