我指定端口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);
});
应用程序正在侦听的端口在运行时设置为不同的值。如果我使用它在浏览器中记录到控制台的值,它可以正常工作。
非常感谢!
答案 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);
});