如何在 Node js 中发送多个响应?在此代码中,我想发送 data
和 data1
function(req, res){
var classValue = req.query.classID;
var sql = "SELECT * FROM class WHERE `class_name` ='"+classValue+"'";
connection.query(sql, function(err, data){
if(data.length){
var sql1 = "SELECT * FROM book WHERE `class_id` ='"+data[0].class_id+"'";
connection.query(sql1, function(err, data1){
res.status(200).send(data1);
res.status(200).send(data);
});
}
});
}
最佳答案
调用send
将结束连接,因此您只能调用一次。您可以像这样轻松地以 JSON
形式发回复杂的结构:
res.json( { data, data1 } );
请注意,您有一个 data.length
可能为零的路径,但仍需要处理。您可能会考虑这样的事情:
function(req, res, next){
var classValue = req.query.classID;
var sql = "SELECT * FROM class WHERE `class_name` ='" + classValue + "'";
connection.query(sql, function(err, data) {
if (err) return next(err); // <-- handle errors
if (data.length) {
var sql1 = "SELECT * FROM book WHERE `class_id` ='" + data[0].class_id + "'";
connection.query(sql1, function(err, data1) {
if (err) return next(err); // <-- handle errors
res.json( { data, data1 } );
});
}
else {
res.json( {data: null, data1: null} ); // or treat it as an error?
}
});
}
如果第一个查询没有给出结果是一个错误条件,那么您可以将其视为错误。请注意,我还使用 next
函数添加了错误处理(假设您使用的是 Express
路由)。
关于mysql - 如何在 Node.js 中发送多个响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59823004/