综合案例:使用Express开发接口服务
Posted So istes immer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了综合案例:使用Express开发接口服务相关的知识,希望对你有一定的参考价值。
参考:https://github.com/gothinkster/realworld
1.创建项目
mkdir realworld-api-express
cd realworld-api-express
npm init -y
npm i express
app.js
process.env.PORT表示当前目录下环境变量port的值,可以在node启动时设置该值
const express = require('express')
const app = express()
const PORT = process.env.PORT || 3000
app.get('/', (req, res) => {
res.send('Hello world')
})
app.listen(PORT, () => {
console.log(`Server is running at http://localhost:${PORT}`)
})
在wins的cmd终端下
2.目录结构
config/config.default.js 配置文件
controller 用于解析用户的输入,处理后返回相应的结果
model 数据持久层
middleware 用于编写中间件
router 用于配置URL路由规则
util 工具模块
app.js 用于自定义启动时的初始化工作
3.配置常用中间件
解析请求体: express.json()、express.urlencoded() (这俩是内置的,所以不用安装)
日志输出: morgan()
为客户端提供跨域资源请求:cors()
安装
npm i morgan
npm i cors
app.js
const express = require('express')
const morgan = require('morgan')
const cors = require('cors')
const app = express()
app.use(express.json())
app.use(morgan('dev'))
app.use(cors())
const PORT = process.env.PORT || 3000
app.get('/', (req, res) => {
res.send('Hello world')
})
app.listen(PORT, () => {
console.log(`Server is running at http://localhost:${PORT}`)
})
4.
对不同的路由进行一个封装,并且对数据的操作都封装一下放在controller文件夹下面
统一配置错误处理中间件
在postman中统一管理测试接口
将数据保存到数据库中
安装mongoose npm i mongoose
Mongoose 是一个让我们可以通过Node来操作MongoDB数据库的一个模块
Mongoose 是一个对象文档模型(ODM)库,它是对Node原生的MongoDB模块进行了进一步的优化封装
使用Mongoose之前确保安装了node和MongoDB,并运行MongoDB(配置完环境变量在cmd中输入Mongod)
MongoDB Compass 就是一个MongoDB的可视化连接工具,提供了丰富的功能
安装可视化数据库管理工具: Navicat/DBeaver
提取通用数据模型,...三个点是ES6中的扩展运算符
数据验证:用户名密码不为空,email格式对不对,用户名是否已存在等等
可以用express-validator,它将一些验证封装成了一个个函数方法。 https://github.com/express-validator/express-validator
提取验证中间件模块
用户注册-密码加密处理
以上是关于综合案例:使用Express开发接口服务的主要内容,如果未能解决你的问题,请参考以下文章
Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段
Express接口综合案例(创建项目配置常用中间件路由设计提取控制器模块配置错误统一处理中间件用户注册的数据验证,密码加密)