一、下载node.js及配置环境
网上很多安装教程,此处就不再赘述了
版本信息
C:\Users\XXX>node -v
v20.15.0C:\Users\XXX>npm -v
10.7.0
二、搭建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 = 3000app.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
到这,就成功了
三、集成nodemon,实现代码热部署
为了方便后续管理代码,新建一个名为src文件夹,将之前创建的index.js文件移入src中(index.js移动到src文件夹后,启动时要进入index.js的上一级文件夹再进行启动,D:\test\src> node index.js)
不需要热部署,可以不用跟着下面的步骤
安装nodemon,命令行输入:npm i nodemon -g
接下来开始实现热部署,修改pakage.json文件,修改两处:main入口文件和scripts对象
"main": "路径从点击进入项目的下一级开始,直到index.js文件"
{"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项目的内容,保存后刷新浏览器查看显示内容是否变化,有变化则成功(修改端口则需要重启服务)