Javascript 使用app.set()和app.get()有什么目的吗?
我可以硬编码吗Javascript 使用app.set()和app.get()有什么目的吗?,javascript,express,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,
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);
});
app.set和app.get只是在app对象中存储自定义属性的方法,不会与对象上的内置属性发生冲突。因此,您可以将其用于任何应用程序级存储
您可以使用以下任一选项自由存储您选择的端口:
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对象的代码都可以访问该属性,因此它是存储应用程序级数据的一种方便方法,其中许多代码(如所有路由处理程序)都可以轻松访问该属性,即使它们分散到许多其他模块中。就端口号而言,这通常不是许多其他代码需要访问的,因此我个人将其放在一个局部变量中并在那里使用。这是一个很好的答案,但您能给我一个应用程序级数据的示例吗。我正在用我的快速技能处理数据,但还不需要应用程序级数据。@rebeccakan-一些示例可能是应用程序级状态,如调试标志、日志记录级别、应用程序级缓存、数据库引用、socket.io引用、外部服务的api键等。我将这些内容划分为单个文件。也许随着我的应用程序变得越来越复杂,我会发现它的用处。