📜  如何在 Express.js 中构建我的应用程序?

📅  最后修改于: 2022-05-13 01:56:28.893000             🧑  作者: Mango

如何在 Express.js 中构建我的应用程序?

Express 是一个用于创建 Web 服务器的简约框架。它建立在 node.js 的 HTTP 模块之上,并提供了一种更简单的方法来管理与服务器相关的代码。

在本文中,我们将讨论如何构建我们的 express 应用程序。

创建节点项目:

第 1 步:由于 express 应用程序是基于 NodeJS 构建的,所以首先,我们必须初始化一个节点项目,在终端中编写以下命令。

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
// 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 occured, server can't start", error);
    }
);


myController.j
// 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;


app.js 文件的结构:首先应该在这个文件中写入导入,然后可以进行某种初始化,然后应该有与整个路由相关的中间件。例如,它可以是 express.json() 中间件,用于将传入的请求解析为 JSON。毕竟,当用户请求从中间件中给出的字符串开始的 URL 时,我们可以编写路由来执行特定的功能。
最后,我们可以启动我们的服务器来监听客户端的请求。如果我们关心数据持久性,首先建立数据库连接会更安全。

应用程序.js

// 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 occured, server can't start", error);
    }
);

设置控制器和路由:路由是 HTTP 请求到服务器的端点,或者可以说是客户端与服务器交互的几种方式,我们的应用程序中经常需要很多路由,所以它是一种方便的设置方式他们事先起来。
控制器只不过是客户端访问某个路由时要执行的代码。这段代码可以由几行组成,这就是我们将它与路由文件分开的原因。

我的控制器.j

// 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

服务器成功运行后,我们可以开始与它进行交互,这里是通过浏览器获取请求的一个示例,

输出:

附加点:

  1. 在使用 node 命令运行服务器时,它会根据上次保存的文件继续运行,如果您希望服务器具有交互性并希望在每次代码更改时重新运行服务器,您可以使用nodemon
  2. 通常,服务器由多个 API 组成,以便客户端可以交互,如果您想记录服务器上的请求的详细信息,您可以使用morgan 。这只是一种方便的方式来了解服务器上发生了什么。