我使用Express.js
/ Postgres
作为我的服务器,并将其设置为在端口3030上运行:
app.set('port', process.env.PORT || 3030);
我正在听它:
app.listen(() => {
console.log( `The server is running on port '${app.get('port')}'` )
})
在控制台中我看到了:
[nodemon] 1.12.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node server/server.js`
The server is running on port '3030'
当我在浏览器中访问localhost:3030时发现问题。而不是我想要的页面,我得到了这个:
This site can’t be reached
localhost refused to connect.
Search Google for localhost 3030
ERR_CONNECTION_REFUSED
我' VE关闭任何和所有的终端(没有可能被从另一个窗口运行),I'已经试过从GitHub克隆回落之前删除整个目录。我甚至通过Brew卸载了Postgres。我'已经遇到这个问题之前,在这一点上,我杀了通过他们的PID,使用特异性端口和神秘的帮助了程序,但它'不是工作的这段时间
这里是我的Github回购的link
任何帮助?
答案 0 :(得分:0)
问题是app.set(' port')。这并没有设置适用于app.listen()的端口。相反,它设置了可以使用app.get(' port')访问的变量端口。
我建议设置一个变量,例如PORT
到process.env.PORT || 3030
。目前看来,我相信express正在选择一个随机端口来使用。
在这个答案中还有一些信息:javascript - app.set('port', 8080) versus app.listen(8080) in Express.js
答案 1 :(得分:0)
这可能不是唯一的错误(现在一切都在运行,无论如何),但是app.listen()方法存在问题。第一个参数并不是我给它的回调,而是一条引用它正在听的内容的路径。回调是可选的,但仅作为第二个参数。 Here's the link to the Express docs.
使用app.set('port', process.env.PORT || 3030)
将端口设置为process.env.PORT,或者如果它不是真的,则默认设置为端口3030.在生产或测试环境中,process.env.PORT将具有一个值,完全忽略3030。