Express简介和环境搭建

Express是NodeJS生态中一个应用广泛的HTTP服务端开发框架,曾经非常流行的号称JavaScript全栈解决方案的MEAN(MongoDB,Express,Angular,NodeJS)就包括了Express。和其它各种框架相比,Express非常的轻量级而且设计精良,这里我们简单了解一下这个框架的功能特性和使用方法。

官方网站:http://expressjs.com/

项目Github地址:https://github.com/expressjs/express

安装Express

我们可以使用以下命令用npm在NodeJS项目中安装express

npm install --save express

目前Express最新版本为4.18.2,安装完成后,我们就可以使用Express提供的API进行服务端逻辑的开发了。

编写一个例子

下面代码是使用Express开发的一个最简单的HTTP服务端例子,源代码只有单个文件,它会监听8080端口,并接收路径/的请求,返回200状态码和一个字符串。

index.js

const express = require('express');
const router = express.Router();

const SERVER_PORT = 8080;

const app = express();

router.get('/', (req, res, next) => {
  res.status(200).send('Hello, world!');
});

app.use(router);
app.listen(SERVER_PORT, () => {
  console.log('Express server listen on %d...', SERVER_PORT);
});

对于代码内容将在后续章节详细介绍,这里只是作为一个简单示例。我们可以使用node ./index.js命令运行代码,并使用浏览器访问http://localhost:8080查看效果。

实现热重启

在开发过程中,我们经常需要修改代码并查看效果。Express目前没有办法实现像Java中Jrebel等那样的热更新,但Express启动极为迅速,因此热重启也能满足我们开发阶段的要求,热重启可以使用nodemon工具实现。

官方网站:https://nodemon.io/

npm install --save-dev nodemon

启动工程时,我们使用nodemon替换node命令即可,该命令可以配置在package.json中,下面是一个例子:

{
  // ... 其他配置
  "scripts": {
    "start": "nodemon ./index.js"
  },
  // ... 其他配置
}

使用nodemon启动后会输出如下日志,我们可以看到它默认监听了工程的所有路径下的jsmjsjson文件,当这些文件改动后nodemon会自动重启工程。

[nodemon] 2.0.22
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node ./index.js`

有关nodemon更复杂的用法可以参考官方文档。

调试Express程序

NodeJS程序推荐使用VSCode进行开发,VSCode中我们可以创建一个启动和调试配置文件,可以很方便的实现断点调试。下面配置是一个参考,它会执行npm start命令启动项目,并附加调试器。

.vscode/launch.json

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "npm start",
            "request": "launch",
            "runtimeArgs": [
                "start"
            ],
            "runtimeExecutable": "npm",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "type": "node"
        }
    ]
}

创建好调试配置后,我们就可以直接使用VSCode的启动按钮来运行项目了。

生产环境部署Express程序

对于生产环境,我们一般不建议直接使用类似node ./index.js的命令来运行项目,生产环境推荐使用pm2等进程管理工具管理Node进程,它可以在Node进程意外崩溃后立即拉起进程恢复服务。

在服务器环境中,我们可以全局安装pm2工具:

npm install -g pm2

安装完成后,使用以下命令启动工程:

pm2 start ./index.js

如果使用Docker进行部署,我们需要让pm2进程留在前台:

pm2 start ./index.js --no-daemon

有关pm2的更多介绍,可以参考NodeJS/第三方模块/pm2-服务进程管理章节。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap