关于一段nodejs代码执行报错的原因

const http = require('http');
const urllib = require('urllib');

const keepaliveAgent = new http.Agent({
  keepAlive: true,
});
const server = http.createServer((req, res) => {
  res.end('Hello World, ' + req.connection.remotePort);
});
server.on('clientError', (err, socket) => {
  socket.end('HTTP/1.1 400 Bad Request\r\n\r\n');
});
server.listen(3000);

function request() {
  urllib.request('http://127.0.0.1:3000', {
    agent: keepaliveAgent,
    dataType: 'text',
  }, (err, data, res) => {
    if (err) {
      console.error('error: %s, status: %s', err, res.status, res);
      throw err;
    }
    console.log('status: %s, data: %s', res.status, data, res);
  });
}



setInterval(request, 5000);
request();

错误日志如下:

clipboard.png

阅读 1.2k
1 个回答

监听还没成功就开始请求当然会报错。

server.listen(3000,()=>{
    setInterval(request, 5000);
    request();
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题