Http.request 在 node.js

Http.request in node.js

这是我在节点 js 中的代码:

var http = require('http');

var options = { 
    host : '127.0.0.1',
    port: 8124,
    path: '/',
    method: 'GET'
};

http.request(options, function(res){    
    console.log("Hello!");  
}).end();

process.on('uncaughtException', function(err){  
    console.log(err);
});

当我编译它时,编译器显示以下错误:

enter image description here

编辑:使用快递作品,但如果我想让它在没有快递的情况下工作,我该怎么办?

测试一下:

const app = require('express')();
app.get('/', (req, res) => {
  res.json({ ok: true });
});
app.listen(8124);

var http = require('http');

var options = {
    host : '127.0.0.1',
    port: 8124,
    path: '/',
    method: 'GET'
};

http.request(options, function(res){
    console.log("Hello!");
}).end();

process.on('uncaughtException', function(err){
    console.log(err);
});

如您所见,它打印 Hello! - 当某些东西正在侦听端口 8124 时。您的问题出在服务器端,而不是客户端。具体来说,您尝试连接的服务器未在本地主机上侦听端口 8124 - 至少在此主机上未侦听。

要解决此问题,只需在之前的代码中添加服务器代码即可。

var http = require('http');

var options = { 
    host : '127.0.0.1',
    port: 8124,
    path: '/',
    method: 'GET'
};

http.request(options, function(res){    
    console.log("Hello!");  
}).end();

process.on('uncaughtException', function(err){  
    console.log(err);
});

http.createServer((req, res)=>{ 
    res.writeHead(200, {'Content-type': 'text/plain'})
    res.end()   
}).listen(8124)