Javascript 如何发送多个响应?
执行查询时,我会得到记录。但当再次运行查询时,这些记录将被复制 例如: 请求1:Javascript 如何发送多个响应?,javascript,node.js,express,Javascript,Node.js,Express,执行查询时,我会得到记录。但当再次运行查询时,这些记录将被复制 例如: 请求1: 3424,DFS,21.07.2020 10:23 21312,123,21.07.2020 15:16 43324,RWR,22.07.2020 15:04 要求2: 3424,DFS,21.07.2020 10:23 21312,123,21.07.2020 15:16 43324,RWR,22.07.2020 15:04 3424,DFS,21.07.2020 10:23 21312,123,21.07.2
3424,DFS,21.07.2020 10:23
21312,123,21.07.2020 15:16
43324,RWR,22.07.2020 15:04
要求2:
3424,DFS,21.07.2020 10:23
21312,123,21.07.2020 15:16
43324,RWR,22.07.2020 15:04
3424,DFS,21.07.2020 10:23
21312,123,21.07.2020 15:16
43324,RWR,22.07.2020 15:04
等等
如何修复它
const output = [];
module.exports.getAll = async function (req, res) {
try {
const cards = await Card.find({}, { NCard: 1, FIO: 1, AuthDate: 1 })
cards.forEach((d) => {
const row = [];
row.push(d.NCard);
row.push(d.FIO);
row.push(moment(d.AuthDate).format('DD.MM.YYYY HH:mm'));
output.push(row.join());
});
res.status(200).send(output.join(os.EOL))
} catch (e) {
errorHandler(res, e)
}
}
对于对
getAll
的每次调用,将结果添加到输出中。因此,output
随着每次调用而增长
第一个想法是将const output=[]
移动到函数中。每次调用getAll
都将结果添加到output
。因此,output
随着每次调用而增长
第一个想法是将const output=[]
移动到函数中。由于输出定义在函数范围之上,它将存储上一次迭代的结果,因此下一次迭代输出数组将包含上一次迭代的结果。因此,您应该在函数内部移动输出数组。由于输出是在函数范围之上定义的,它将存储上一次迭代的结果,因此下一次迭代的输出数组将包含上一次迭代的结果。因此,您应该在函数内部移动输出数组。您确定这是queryie的错误,而不是您没有覆盖前端的数组吗?如果不是,则可能是卡中的错误。查找(…)
您确定是queryie的错误,而不是您没有覆盖前端上的数组吗?如果不是,则可能是卡中的错误。查找(…)