【Node.js实战】一文带你开发博客项目之初识Express(安装Express,处理路由,中间件机制)
创始人
2024-05-19 14:01:50

个人简介

👀个人主页: 前端杂货铺
🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端
📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招)
🚀未来打算: 为中国的工业软件事业效力n年
🥇推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2&Vue3项目实战 🥝Node.js🍒Three.js
🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧

Node.js系列文章目录

内容参考链接
Node.js(一)初识 Node.js
Node.js(二)Node.js——开发博客项目之接口
Node.js(三)Node.js——一文带你开发博客项目(使用假数据处理)
Node.js(四)Node.js——开发博客项目之MySQL基础
Node.js(五)Node.js——开发博客项目之API对接MySQL
Node.js(六)Node.js——开发博客项目之登录(前置知识)
Node.js(七)Node.js——开发博客项目之登录(对接完毕)
Node.js(八)Node.js——开发开发博客项目之联调
Node.js(九)Node.js——开发博客项目之日志
Node.js(十)Node.js——开发博客项目之安全

文章目录

  • Node.js系列文章目录
    • 一、前言
    • 二、express
      • 1、安装 express
      • 2、express 处理路由
      • 3、中间件机制
    • 三、写在最后


一、前言

前面我们已经使用原生的 node.js 完成了 myblog 博客项目。

接下来,我们使用 express 框架来重构我们的 myblog 项目…

二、express

1、安装 express

使用脚手架(express-generator)

首先,我们全局安装脚手架

npm install express-generator -g

使用脚手架生成名为 blog-express 的项目

express blog-express

在这里插入图片描述

之后我们安装依赖

npm install

再之后,我们就可以启动它了

npm start

我们访问 localhost:3000 端口

在这里插入图片描述


下面我们安装一下 nodemon

npm i nodemon cross-env --save-dev

给 package.json 添加一行(实时监听,不用再次启动)

  "scripts": {..."dev": "cross-env NODE_ENV=dev nodemon ./bin/www"},

那么我们便可以使用 npm run dev 来启动项目了


2、express 处理路由

express 已经为我们封装好了路由,我们直接拿来简单配置一下就可以

在这里插入图片描述

我们可以参照 index.js 的代码,稍加修改即可

blog.js

我们首先配置一下博客列表和博客详情的路由(GET请求)

var express = require('express');
var router = express.Router();// 博客列表
router.get('/list', function(req, res, next) {res.json({errno: 0,data: [1, 2, 3]})
});// 博客详情
router.get('/detail', function(req, res, next) {res.json({errno: 0,data: 'OK'})
});module.exports = router;

user.js

我们再来配置一下登录的路由(POST请求)

var express = require('express');
var router = express.Router();// 登录
router.post('/login', function (req, res, next) {const { username, password } = req.bodyres.json({errno: 0,data: {username,password}})
});module.exports = router;

app.js

在 app.js 文件中添加刚刚配置的路由

const blogRouter = require('./routes/blog')
const userRouter = require('./routes/user')
...
app.use('/api/blog', blogRouter);
app.use('/api/user', userRouter);

接下来,我们来进行一下 GET 和 POST 请求的测试

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


3、中间件机制

中间件主要是指封装所有Http请求细节处理的方法

express 中间件函数,帮助拆解主程序的业务逻辑,并且每一个的中间件函数处理的结果都会传递给下一个中间件函数

首先,我们来做一个小 demo

我们在根目录创建 express-test 文件,在当前目录下初始化

npm init -y

修改 package.json 文件下的主文件

"main": "app.js",

之后创建 app.js 文件,并安装 express(注意:没有使用到脚手架,因为此处仅做测试介绍中间件)

npm i express

在这里插入图片描述

app.js

我们编写一些 http 请求,理解一下 next() 的作用(根据请求方式和路径进行匹配执行)

const express = require('express')// 本次 http 请求的实例
const app = express()app.use((req, res, next) => {console.log('请求开始...', req.method, req.url)next()
})app.use((req, res, next) => {// 假设在处理 cookiereq.cookie = {userId: 'abc123'}next()
})app.use((req, res, next) => {// 假设处理 post data// 异步setTimeout(() => {req.body = {a: 100,b: 200}next()})
})app.use('/api', (req, res, next) => {console.log('处理 /api 路由')next()
})app.get('/api', (req, res, next) => {console.log('get /api 路由')next()
})app.post('/api', (req, res, next) => {console.log('post /api 路由');next()
})app.get('/api/get-cookie', (req, res, next) => {console.log('get /api/get-cookie');res.json({errno: 0,data: req.cookie})
})app.post('/api/get-post-data', (req, res, next) => {console.log('post /api/get-post-data');res.json({errno: 0,data: req.body})
})app.use((req, res, next) => {console.log('处理 404');res.json({errno: -1,msg: '404 not found'})
})app.listen(3000, () => {console.log('server is running on port 3000');
})

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


三、写在最后

至此,我们明白了 如何安装Express,如何处理路由以及什么是中间件机制 继续跟进学习吧!

后续会对该项目进行多次重构【多种框架(express,koa)和数据库(mysql,sequelize,mongodb)】

如果你需要该项目的 源码,请通过本篇文章最下面的方式 加入 进来~~


在这里插入图片描述


相关内容

热门资讯

世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...