📅  最后修改于: 2023-12-03 14:48:55.497000             🧑  作者: Mango
在使用 Express 进行 Web 应用程序开发时,经常看到代码中出现了两个文件:一个是 app.js
或 index.js
,另一个是 server.js
。这两个文件各自有着不同的功能,但是为什么要将它们分开保存呢?下面我将为大家详细阐述这个问题。
首先,让我们认识一下 app
文件。在 Express 中,app
文件是应用程序的主要文件,它用于配置和定义应用程序的行为。在 app
文件中,我们可以定义中间件,路由,静态文件等等。
以下是一个简单的 app.js
文件示例:
const express = require('express');
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => console.log('Server running on port 3000'));
在这个例子中,我们使用 app
对象配置了中间件、路由和端口监听。
在一个项目中,server
文件通常用于启动应用程序。它包含与服务器实例相关的代码,具有初始化服务器、处理未捕获的错误、捕获异常、监听端口等功能。
以下是一个简单的 server.js
文件示例:
const app = require('./app');
const http = require('http');
const port = process.env.PORT || '3000';
app.set('port', port);
const server = http.createServer(app);
server.listen(port, () => console.log(`Server running on port ${port}`));
在这个例子中,我们创建了一个 HTTP 服务器实例,并在监听端口之前将其传递给应用程序。
现在,我们可以回答最初的问题了:为什么要将 app
文件和 server
文件分开保存呢?
这是因为将应用程序和服务器分离可以让它们各自专注于自己的职责。app
文件负责配置和定义应用程序的行为,而 server
文件负责启动服务器实例并监听端口。分离它们可以使代码更加整洁,易于维护和开发。
在大多数情况下,app
文件只需要被引入一次,而它所定义的所有路由、中间件等都将在服务器运行时生效。这意味着我们只需要开发一次 app
文件,即可在任何服务器上使用。
通过分离应用程序和服务器实例,我们可以更好地管理我们的代码,并遵循单一职责原则。这样可以提高代码质量、可维护性和可重用性,同时也可以使开发过程更加愉快。