【发布时间】:2019-02-02 21:13:51
【问题描述】:
我对 Node.js 有点陌生,并且在 Node.js 中编写了一些 REST API。对于我的一个 API,我需要传递 2 个参数才能从数据库中获取数据。我已经使用单个参数实现了它,但不超过 2 个。有人可以帮我吗?
这是我的代码
app.get('/getData/:receiver_id&:sender_id',function(req,res){
connection.query('SELECT * FROM mytable WHERE sender_id=? AND receiver_id=?',[req.params.sender_id],[req.params.receiver_id],function(error,results,fields){
if(error) throw error;
else {
res.json({'result':results})
console.log(JSON.stringify(results))
}
});
});
我在控制台中不断收到此错误
> /var/www/html/chatApp/node_modules/mysql/lib/protocol/Parser.js:80
throw err; // Rethrow non-MySQL errors
^
TypeError: Object 1 has no method 'apply'
at Query.Sequence.end (/var/www/html/chatApp/node_modules/mysql/lib/protocol/sequences/Sequence.js:83:24)
at Query.ErrorPacket (/var/www/html/chatApp/node_modules/mysql/lib/protocol/sequences/Query.js:90:8)
at Protocol._parsePacket (/var/www/html/chatApp/node_modules/mysql/lib/protocol/Protocol.js:278:23)
at Parser.write (/var/www/html/chatApp/node_modules/mysql/lib/protocol/Parser.js:76:12)
at Protocol.write (/var/www/html/chatApp/node_modules/mysql/lib/protocol/Protocol.js:38:16)
at Socket.<anonymous> (/var/www/html/chatApp/node_modules/mysql/lib/Connection.js:91:28)
at Socket.<anonymous> (/var/www/html/chatApp/node_modules/mysql/lib/Connection.js:502:10)
at Socket.EventEmitter.emit (events.js:95:17)
at Socket.<anonymous> (_stream_readable.js:710:14)
at Socket.EventEmitter.emit (events.js:92:17)
【问题讨论】:
-
您添加了完全相同的消息;请删除它 - 并确保更新代码并重新启动服务器。
-
它仍然显示相同的错误
-
请说明你是如何重写代码的。
-
您编辑的代码不正确,您必须将参数绑定到一个数组而不是两个不同的数组中。应该是
[req.params.sender_id,req.params.receiver_id] instead of [req.params.sender_id],[req.params.receiver_id] -
你到底为什么在edited代码中仍然使用两个数组将参数传递给MySQL?那么编辑是什么?
标签: node.js express get routes