目录
[四、Express 应用程序生成器](#四、Express 应用程序生成器)
一、下载node.js及配置环境
网上很多安装教程,此处就不再赘述了
版本信息
C:\Users\XXX>node -v
v20.15.0
C:\Users\XXX>npm -v
10.7.0
了解更多npm知识:npm 中文网 (nodejs.cn)
二、搭建node.js项目及安装express框架
在任意位置创建一个项目文件夹,此处项目文件夹名为test(文件夹路径:D:\test)
以管理员身份打开windows命令行工具或powershell命令行工具(记住:必须以管理员身份打开,不要使用win+R的方式或者文件夹输入cmd的方式打开,否则后面安装express会失败)
左下角搜索框输入命令提示符,打开windows命令行工具(没有安装powershell,推荐使用这种方式)

打开powershell命令行工具(需要安装好powershell才可以打开)

打开命令行,进入创建的test项目文件夹

创建package.json,命令行输入下列命令
npm init

name 项目名称
version 项目版本号
description 项目描述信息
entry point 项目入口文件
test command 项目启动时脚本命令
git repository Git仓库地址
keywords 关键词
author 作者
一路回车键

创建test项目的文件夹出现了pakage.json文件,打开查看里面的信息


安装express
npm install express --save
安装完成,如果是以管理员身份打开的命令行一般不会报错

安装好了后出现下列两个文件(夹)

package文件内容随之改变,由于程序主入口是index.js,所以要创建index.js文件,(文件后缀必须是js)


编辑index.js文件内容,为了快速,我们直接找到express官网,打开里面的示例
Express - 基于 Node.js 平台的 web 应用开发框架 - Express中文文档 | Express中文网 (expressjs.com.cn)https://www.expressjs.com.cn/
package.json |npm 文档 (npmjs.com)https://docs.npmjs.com/cli/v10/configuring-npm/package-json
复制Hello World示例 到index.js文件中

修改下打印日志的内容
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening on http://localhost:${port}`)
})
运行项目,输入命令node 入口文件.js

咱这边的入口文件是index.js,稍微修改下
node index.js
启动成功后,浏览器访问服务,输入控制台输出的访问地址:http://localhost:3000

到这,就成功了

为了方便后续管理代码,新建一个名为src文件夹,将之前创建的index.js文件移入src中(index.js移动到src文件夹后,启动时要进入index.js的上一级文件夹再进行启动,D:\test\src> node index.js)
三、集成nodemon,实现代码热部署
不需要热部署,可以不用跟着下面的步骤
安装nodemon,命令行输入:npm i nodemon -g

接下来开始实现热部署,修改pakage.json文件,修改两处:main入口文件和scripts对象
"main": "路径从点击进入项目的下一级开始,直到index.js文件"
javascript
{
"name": "test",
"version": "1.0.0",
"description": "测试创建node项目",
"main": "src/index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start":"nodemon --watch src --watch config src/index.js"
},
"author": "小红",
"license": "ISC",
"dependencies": {
"express": "^4.21.1"
}
}
输入npm run start启动项目,终止项目ctrl+C

热部署的好处在于,不需要重启项目,刷新浏览器即可完成代码更新,如何判断是否成功热部署,一是命令行绿色部分执行代码,二是不重启项目,修改index.js项目的内容,保存后刷新浏览器查看显示内容是否变化,有变化则成功(修改端口则需要重启服务)

四、Express 应用程序生成器
照旧,第一步创建项目文件夹,管理员身份进入命令行,创建pakage.json文件,执行npm init

通过应用生成器工具 express-generator
可以快速创建一个应用的骨架。
你可以通过 npx
(包含在 Node.js 8.2.0 及更高版本中)命令来运行 Express 应用程序生成器
npx express-generator

执行完npx express-generator命令就可以快速生成以下项目结构文件

由于项目结构是使用生成器生成的,需要安装项目内的依赖包,执行一下npm install

打开app.js(原默认是index.js,没有选择直接回车,而是在后面输入app.js后再回车,因此我的入口文件就改成了app.js),可以看到,文件内是没有配置端口,以及启动打印的数据的,在这里可以自行手动配置下(app.get()或app.set()需要在var app = express();后面使用)
pakage.json

启动项目npm run start

没有设置打印日志是这样的

实现代码热部署
1.项目安装nodemon,执行npm install nodemon --save
2.优化目录结构,创建src文件夹,将app.js移入

3.修改app.js文件内容,app.js引用路由文件不再是同级关系,二是上一级文件夹,因此将.改为..

4.修改pakage.json文件的scripts对象start的配置,监听src目录

启动项目后,任意修改app.js文件在浏览器上显示的内容