Node.js是应用程序没有侦听指定的端口

时间:2017-02-10 18:29:07

标签: javascript node.js port

我指定端口30000,但应用程序最终会在另一个端口上侦听。

这是我正在使用的代码:

var express = require('express');
var bodyParser = require('body-parser');
var path = require('path');

var app = express();

app.get('/', function(req, res) {
    res.send('Hello World');
});

app.listen(30000, function() {
    console.log('Server started on port %d', app.listen().address().port);
});

应用程序正在侦听的端口在运行时设置为不同的值。如果我使用它在浏览器中记录到控制台的值,它可以正常工作。

非常感谢!

1 个答案:

答案 0 :(得分:2)

您运行app.listen()两次 - 第二次在console.log的参数中。

第二个没有端口作为参数,因此它选择一个随机端口。

改变这个:

app.listen(30000, function() {
    console.log('Server started on port %d', app.listen().address().port);
});

为:

var listener = app.listen(30000, function () {
   console.log('Server started on port %d', listener.address().port);
});