ERR_HTTP_HEADERS_SENTNode js套接字连接



我正在构建一个API,该API使用套接字连接与C#中内置的服务器后端进行交互。这就是我目前拥有的

const request = require('request');
const express = require('express');
const app = express();
var server = require('http').createServer(app);
var cors = require("cors");
app.use(cors());
const net = require('net');
const client = new net.Socket();
const stringToJson=require('./stringToJson')
const port = process.env.PORT;
const host = process.env.HOST;

client.keepAlive=true
client.on('close', function() {
console.log('Connection closed');
});
app.get('/getScores',function (req,res) {
let dataSend=''

client.on('data', function (data) {
console.log('Server Says : ' + data);
if(data!='ANALYSIS-ERROR'){
dataSend=stringToJson.stringToJson(data)
}
else{
dataSend=stringToJson.stringToJson('0:0.0:0.0:0.0:0:0:0.0:0.0:0.0:0.0:0.0:0:0.0:0.0:0.0:0.0:0.0:0:0.0:0.0:0.0:0.0:0.0:0:0.0:0.0:0.0:0.0:0.0')
}
client.destroy()

return  res.send(dataSend)

});
client.connect(port, host, function () {
client.write(`GENERAL-ANALYSIS|${req.query.id}|${req.query.website}|`)
return
});
return
})
app.get('/getPlace',function (req,res) {
console.log(req.query)
request(
{ url: `https://maps.googleapis.com/maps/api/place/textsearch/json?query=${req.query.name}+in+${req.query.city}&key=${process.env.API_KEY}` },
(error, response, body) => {
if (error || response.statusCode !== 200) {
return res.status(500).json({ type: 'error', message: error.message });
}
return res.json(JSON.parse(body));
}
)
})

//TODO ADD 404 500 PAGES
app.use((req, res, next) => {
res.status(404).send("Sorry can't find that!");
});
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});


server.listen(9000, () => {
console.log(`App running at http://localhost:9000`);
});

基本上,它创建与服务器的连接,并侦听要发送回的一些数据。然后处理字符串并将其发送到React前端。api调用由前端使用axios进行它可以工作,但如果你刷新页面,它会抛出这个错误Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

我该如何解决这个问题?

尝试设置文档请求中的标头。setHeader(name,value(

request.setHeader('Content-Type', 'application/json');

最新更新