Express.js 如何构建我的应用程序
Express是一个最小化的框架,用于创建web服务器。它建立在node.js的HTTP模块之上,并提供了一种更简单的方式来管理与服务器相关的代码。
在本文中,我们将讨论如何组织我们的Express应用程序。
创建Node项目:
步骤1: 由于Express应用程序是建立在NodeJS之上的,所以首先我们必须初始化一个node项目,在您的终端中键入以下命令。
npm init
步骤2: 安装软件包
npm install express
步骤3: 创建一个 app.js 文件。在这个文件中,我们写下了整个服务器的代码。
touch app.js
项目结构: 完成所有这些操作后,我们的项目结构将会如下所示。
配置环境变量: 在编写服务器代码时,我们经常需要在整个代码库中使用某些常量变量,因此我们应该设置某种环境变量,以便在所有文件中都可以使用。
该模块用于从.env文件加载环境变量到进程对象,以便我们以后可以在代码库中的任何地方轻松使用这些变量。
npm install **dotenv**
.env
PORT=3000 // This will be available as process.env.PORT
// You can write any variable here.
app.js文件的结构: 导入是第一件应该写在这个文件里的事情,然后可能有某种类型的初始化,然后应该有与整个路由相关的中间件。例如,可以使用express.json()中间件来解析传入的请求为JSON。在所有这些之后,我们可以编写我们的路由,以便在用户请求以中间件中给定的字符串开头的URL时执行特定的功能。
最后,我们可以启动我们的服务器来监听客户端的请求。如果我们关心数据的持久性,最好先建立数据库连接。
// 3rd Party Modules
const express = require('express');
require('dotenv/config');
// Local Modules
const myRoute = require('./routes/myRoute.js');
// Server Initialization
const app = express();
const PORT = process.env.PORT;
// Middlewares
app.use(express.json());
// Routes will be written here
app.use('/route', myRoute);
// Server Listen Along with Database
// connection(in case of data persistence)
app.listen(PORT, (error) =>{
if(!error)
console.log("Server is Successfully Running,
and App is listening on port "+ PORT)
else
console.log("Error occurred, server can't start", error);
}
);
设置控制器和路由:
路由是服务器上HTTP请求的终点,也可以说是客户端与服务器交互的一些方式。在我们的应用程序中通常需要很多路由,因此预先设置它们是一种方便的方式。
控制器只是在客户端访问某个路由时要执行的代码。这段代码可以由多行组成,因此我们将其与路由文件分开存放。
myController.js
// Methods to be executed on routes
const method1 = (req, res)=>{
res.send("Hello, Welcome to our Page");
}
const method2 = (req, res)=>{
res.send("Hello, This was a post Request");
}
// Export of all methods as object
module.exports = {
method1,
method2
}
myRoute.js
// 3rd Party Modules
const { Router } = require('express');
// Local Modules
const myController = require('../controllers/myController');
// Initialization
const router = Router();
// Requests
router.get('/', myController.method1);
router.post('/', myController.method2);
module.exports = router;
运行应用的步骤: 我们可以使用下面的命令运行我们的Express应用程序,app.js是此应用程序的入口点。
node **app.js**
在服务器成功运行后,我们可以开始与其交互,下面是一个通过浏览器进行GET请求的示例,
输出:
附加说明:
- 使用node命令运行服务器时,它将根据最后保存的文件持续运行,如果你希望服务器能够互动,并在代码更改时重新运行服务器,可以使用 nodemon 。
- 通常,服务器由多个API组成,以便客户端可以进行交互,如果你想要记录打击服务器的请求的详细信息,可以使用 morgan 。这只是一种方便的了解服务器上正在发生的情况的方式。