【发布时间】:2018-05-22 12:41:53
【问题描述】:
如何将多个响应合并到一个 json 中?谢谢!
当我运行代码时出现错误:
错误 [ERR_HTTP_HEADERS_SENT]:发送到客户端后无法设置标头
....
var trackArrayReg = [
/^[A-Z]{2}\d{14}NPI$|^460\d{9}$|^959\d{9}$/i,
/^LP0\d{13}$|^[A-Z]{2}\d{14}NPI$/i
];
router.get('/:trackId', function(req, res) {
var trackId = req.params.trackId;
trackArrayReg.forEach(function(item, index, urlsArray) {
if (trackArrayReg[index].exec(trackId)) {
track = index;
request({
method: config[track].method,
url: config[track].url + trackId,
timeout: config[track].timeout,
maxAttempts: 3,
retryDelay: 500
}, function(err, response, body, callback) {
if (err) return console.error(err);
$ = cheerio.load(body);
stat = [];
$(config[track].response.rowSelector).map(function(i, links) {
var date = $(links).find(config[track].response.columnSelector).eq(config[track].response.dateColumnIndex).text(),
status = $(links).find(config[track].response.columnSelector).eq(config[track].response.stateColumnIndex).text(),
location = $(links).find(config[track].response.columnSelector).eq(config[track].response.locationColumnIndex).text();
stat.push({
location: location,
date: date,
status: status,
carrier: track
});
});
var states = JSON.parse(JSON.stringify(stat));
res.send({states});
});}});});
....
【问题讨论】:
-
假设您的多个响应是 json 格式,您可以在重复函数中使用 jQuery $.merge()。
标签: javascript node.js express cheerio