1 Star 0 Fork 0

zlc1000/api_server

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
app.js 1.79 KB
一键复制 编辑 原始数据 按行查看 历史
zlc1000 提交于 2020-06-29 22:10 . Thanks♪(・ω・)ノ
const express = require('express')
const app = express()
// 导入 Joi 来定义验证规则
const Joi = require('@hapi/joi')
const jwt = require('express-jwt')
const path = require('path')
const { secretKey } = require('./config/index')
// 注册 cors 解决跨域问题
const cors = require('cors')
app.use(cors())
app.use(express.urlencoded({ extended: false }))
// 托管静态资源文件 绝对路径
app.use('/uploads', express.static(path.join(__dirname, '../uploads')))
// 定义全局中间件 --> 一定要定义在 路由 之前
app.use((req, res, next) => {
// 对函数参数进行解构给默认值的时候,最好在最后一个参数
res.cc = function (err, status = 1) {
res.send({
message: err instanceof Error ? err.message : err,
status
})
}
next()
})
// 定义解析 token 的中间件
app.use(jwt({ secret: secretKey }).unless({ path: [/^\/api\//] }))
// 注册路由中间件
const userRouter = require('./router/user')
app.use('/api', userRouter)
const userInfoRouter = require('./router/userinfo')
app.use('/my', userInfoRouter)
const cateRouter = require('./router/artcate')
app.use('/my/article', cateRouter)
const articleRouter = require('./router/article')
app.use('/my/article', articleRouter)
// 定义错误中间件
app.use((err, req, res, next) => {
console.log(err)
if (err.name === 'UnauthorizedError') {
// return res.cc('身份认证失败') return 就是表示立即终端程序
return res.cc('身份认证失败')
} else if (err instanceof Joi.ValidationError) {
return res.cc(err)
}
res.cc(err)
// 这里可以不用加 next()
})
app.listen(9091, () => {
console.log('express server running at http://localhost:9091')
})
// 测试账号:zlc 666666
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zlc1000/api_server.git
git@gitee.com:zlc1000/api_server.git
zlc1000
api_server
api_server
master

搜索帮助