【问题标题】:Node server is running but not able to run on browser and port is undefined节点服务器正在运行但无法在浏览器上运行并且端口未定义
【发布时间】:2018-02-11 18:26:45
【问题描述】:

我是 Node JS 的新手。我在我的第一个应用程序上遇到了这个问题。节点服务器正在运行。但在控制台中显示端口未定义,而在浏览器中显示拒绝连接。

const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req,res) =>{
    res.statusCode = 200;
    res.setHeader('Content-type','text/plain');
    res.end('Hello world');
});
server.listen((port,hostname) => {
console.log('server started on port: '+port);
}); 

我试过http://127.0.0.1:3000/ 和http://localhost:3000/。但是没用。

【问题讨论】:

    标签: node.js port


    【解决方案1】:

    调用listen 时无需指定主机名。另外,端口应该是第一个参数,回调应该是第二个。
    工作示例:

    const http = require('http');
    const port = 3000;
    
    const server = http.createServer((req,res) =>{
        res.statusCode = 200;
        res.setHeader('Content-type','text/plain');
        res.end('Hello world');
    });
    
    server.listen(port, (err) => {
        // err handling
        console.log('server started on port: '+port);
    });
    

    现在在您的浏览器上转到localhost:3000 将产生您想要的结果。

    【讨论】:

      【解决方案2】:

      http.listen()的格式为:

      server.listen(端口,回调);

      但是你正在做的是

      server.listen(回调)

      由于您只在http.listen() 中传递了一个箭头函数,因此端口未知。

      所以你要做的是:

      server.listen(port, (err) => {
         console.log('server started on port: '+port);
      });
      

      【讨论】:

        猜你喜欢
        • 2013-02-19
        • 1970-01-01
        • 2018-11-24
        • 2017-05-26
        • 2023-03-12
        • 1970-01-01
        • 1970-01-01
        • 2021-04-14
        • 1970-01-01
        相关资源
        最近更新 更多