我在节点中设置了一个发布路线,如下所示:
router.route('/').post((req, res) => {
pool.query('INSERT INTO users SET ?', req.body, (err, result) => {
if (err) throw err;
res.status(201).send(`User added with ID: ${result.insertId}`);
});
});
如果我使用此curl命令,它可以完美运行并添加了用户:
curl -d "username=Dinesh Chugtai&email=dinesh@piedpiper.com&password=test" http://localhost:4000/users
但是,通过Postmate发送发帖请求时,出现此错误:
ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Postmate还会生成一个curl命令,该命令是这样的:
curl -X POST 'http://localhost:4000/users?username=johnsmith&email=john@smith.com&password=password'
如果我在命令行中手动输入该错误,也会给我同样的错误。
为什么一个curl命令起作用而另一个不起作用?我的发布路线设置正确吗?
答案 0 :(得分:1)
在Node.js路由定义中,您希望在req.body
中获取数据,该数据是POST请求的正文。
curl
之所以有效,是因为您要将数据放入正文