Express
Express
#Node #Express Express - Node.js Web 应用程序框架 (expressjs.com)
Node环境的网络处理框架
安装
提供三种包管理器的安装方式,选择一个你喜欢的安装即可
安装express
pnpm i expressyarn add expressnpm i express安装express依赖的第三方库
npm i http-errorsnpm i morgannpm i cookie-parser可选安装
[type-is](Express 5.x - API Reference (expressjs.com))
npm i type-is 1.6.18使用
- 创建
package.json包
可选参数:
-y全部设为默认值
pnpm inityarn initnpm init- 创建文件入口,约定为
app.js
项目====根目录====下终端
创建或者右键新建文件夹powerShell 创建文件的指令为new-item <file>cmd 创建指令为type nul> <file>
new-item app.jstype nul> <file>- 配置
//导入核心库 startconst express = require('express') // 核心库const path = require('path') // Node内置路径库const createError = require('http-errors') // 网络请求错误处理库const logger = require('morgan') // 输出const cookieParser = require('cookie-parser') // cookie 相关//导入核心库 end
// 导入 用户配置 startconst indexRouter = require('./routes/index') // 首页路由, 手动创建const userRouter = require('./routes/user') // 用户路由, 手动创建 访问 /users 时匹配// 导入 用户配置 end
// 使用 express 其本质是一个函数,封装了Node的网络请求const app = express()
// view engin setup 设置模pug板引擎app.set('views', path.join(__dirname, 'views'))app.set('view engine', 'pug')//app.set('view engine', 'jade')
// 将中间件库添加到请求处理链app.use(logger('dev')) // logger库app.use(express.json())app.use(express.urlencoded({ extended: false }))app.use(cookieParser()) // Cookie处理库app.use(express.static(path.join(__dirname, 'public'))) // 静态资源文件夹
// 导入路由app.use('/', indexRouter)app.use('/users', userRouter)
// 错误处理器app.use((err, req, res, next) => {// 只在开发环境提供错误 res.locals.message = err.message res.lcoals.error = req.app.get('env') === 'development' ? err : {}
// 渲染出错页面 res.status(err.status || 500) res.render('error')})
// port 默认为 3000 端口app.listen(3000, () => { console.info('create succeed!') // 请求成功的响应消息})
// 导出app.jsmodule.exports = app- 创建
routes文件夹 存放路由相关文件
项目==根目录==下终端
创建或 右键新建文件夹
mkdir routes- 创建一个==首页==路由
mkdir index.jsroutes/index.js
const express = require('express')
const router = express.Router('/',(req,res,next)=>{ res.send('Hello Express')})- 创建一个==用户==路由
项目==根目录==下终端
创建或 右键新建文件夹
mkdir user.jsroutes/users.js
const express = require('express')
const router = express.Router('/',(req,res,next)=>{ res.send('Welcome Back! User')})- 启动
项目根目录运行
node app.js可选
- antfu/esno: TypeScript / ESNext node runtime by esbuild (github.com) 在
Typescript运行Node环境 - nodemon 保存时自动更新
- pm2