我有一个 post 路由,期望发送以 JSON 格式提供的正文值名称。
我的 server.js 包括:
app.use(express.json({ extended: false }));
这是路线的外观:
router.post('/',
[
check('name', 'Name is required!')
.not()
.isEmpty(),
],
async (req, res) => {
const validationErrors = validationResult(req);
if (!validationErrors.isEmpty()) {
return res.status(400).json({ validationErrors: validationErrors.array() });
}
else {
try {
await odbc.connect(cn, (error, connection) => {
console.log(req.body.name)
connection.query(
"INSERT INTO test.amessages(name) VALUES(:req.body.name)",
(error, result) => {
if (error) {
throw error;
}
return res.status(200).json({ result });
}
);
});
}
catch (error) {
console.error(error);
return res.status(500).json({ msg: 'Server Error' });
}
}
});
变量之前的 console.log 为我提供了提供给路由的正确值。通常,当使用其他针对 sqlserver 的工具时,我已经能够放入 ${req.body.name} 并且这会起作用。在这种情况下,和以下都不起作用 - (req.body.name)、:req.body.name、(req.body.name) 和其他各种组合。
下面看一下我如何为路线提供值:
{
"name": "Test"
}
如何在 Insert 语句中使用正文值?