【发布时间】:2021-07-03 20:02:39
【问题描述】:
由于 HTTP 错误,当我调用 sendPushMessages(message) 时,此代码不允许我发出 fetch 请求,但我不知道为什么。
控制台显示: 错误 [ERR_HTTP_HEADERS_SENT]: 发送到客户端后无法设置标头
此外,如果我评论: res.status(200).send({shop: shop[0]});代码仍然无法工作。
const {models} = require('../models');
const Sequelize = require('sequelize');
exports.findshop = async (req, res, next) => {
sendPushMessages = async (message) => {
try{
let response = await fetch('https://exp.host/--/api/v2/push/send', {
method: 'POST',
headers: {
Accept: 'application/json',
'Accept-encoding': 'gzip, deflate',
'Content-Type': 'application/json',
},
body: JSON.stringify(message),
});
let responsed = await response.json();
console.log(responsed);
}
catch (error) {
next(error);
}
}
try {
console.log(req.body.latitud)
console.log(req.body.longitud)
const user = req.user;
const shops = await models.Shop.findAll({
include:[{ model: models.Product, as: 'placements'}]
});
const shop = shops.filter(shp => {
if (Math.abs(shp.latitud - req.body.latitud) <= 0.001 && Math.abs(shp.longitud - req.body.longitud) <= 0.001){
return shp;
}
});
if (shop[0] && user) {
shop[0].placements.forEach(item => {
if (item.dataValues.isoffer){
const message = {
to: user.pushtoken,
sound: 'default',
title: '¡Ofertón! ¡No te lo puedes perder!',
body: item.productname + ' ' + item.price.toString() + '€',
};
sendPushMessages(message);
}
})
res.status(200).send({shop: shop[0]});
} else {
res.status(200).send({shop: null});
}
} catch (error) {
next(error);
}
};
【问题讨论】:
标签: javascript express http-headers fetch http-error