是否有使用app.set()和app.get()的目的?

时间:2018-01-21 04:17:02

标签: javascript express

我可以硬编码:

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);
});

1 个答案:

答案 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对象的任何代码都可以访问该属性,因此这是一种将应用程序级数据存储在很多代码中的便捷方式(如你的所有路由处理程序都可以轻松访问它,即使它们已经扩展到许多其他模块中。在端口号的情况下,通常不是许多其他代码需要访问的东西,所以我个人只是把它放在一个局部变量中并在那里使用它。