我可以硬编码:
app.set('port', (process.env.PORT || 3000));
const server = app.listen(app.get('port'), () => {
console.log('Server|Port: ', app.get('port'));
});
相反,它更具可读性
const port = process.env.PORT || 3000;
const server = app.listen(port, () => {
console.log('Server|Port: ', port);
});
答案 0 :(得分:1)
app.set()
和app.get()
只是在app
对象中存储自定义属性的方法,而不会与对象的内置属性发生冲突。因此,您可以将它们用于您想要的任何app
级存储。
您可以随意存储port
:
app.set(port, process.env.PORT || 3000)
然后使用
检索它app.get('port')
或者您可以使用其他选项:
const port = process.env.PORT || 3000;
两者都可以正常工作。使用哪个完全是个人编码选择。就个人而言,我会使用const port = xxxx
因为端口不是服务器启动后其他代码通常需要的东西。
是否有使用app.set()和app.get()的目的?
app.get()
的主要好处是拥有app
对象的任何代码都可以访问该属性,因此这是一种将应用程序级数据存储在很多代码中的便捷方式(如你的所有路由处理程序都可以轻松访问它,即使它们已经扩展到许多其他模块中。在端口号的情况下,通常不是许多其他代码需要访问的东西,所以我个人只是把它放在一个局部变量中并在那里使用它。