1 Star 5 Fork 0

wherePI/后台管理系统Server

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
index.js 3.27 KB
一键复制 编辑 原始数据 按行查看 历史
wherePI 提交于 2023-02-22 11:18 . 更新
// 导入express模块
const express = require('express')
// 引入cors处理跨域
const cors = require('cors')
// 创建服务器实例
var app = express()
// 引用webSocket
var wss = require('./Socket/index')
// 引入ip跟端口
const myIp = require('./config/index')
// 引入日志
const logger = require('./config/logConfig')
// 配置urlencoded请求处理
app.use(express.urlencoded({extended: false}))
// 解析token
const { expressjwt } = require('express-jwt')
// 定义secret 秘钥 用于讲jwttoken进行加密解密的钥匙,防破解 越复杂越好
const secretKey = 'lmNodeExpress ++'
//解除跨域
app.use(cors())
// 配置解析jwt字符串还原成json对象中间件
// unless配置所有路径以[]数组内都不需要授权令牌
app.use(expressjwt({algorithms: ['HS256'], secret: secretKey}).unless({path: [/^\/login\//, /^\/public\//]}))
//使用express框架自带的static中间件,用来管理静态资源
app.use('/public', express.static(__dirname + '/public'));
app.use('/public/apidoc', express.static('apidoc'));
// 全局中间件处理 如果设置了res.setHeader('Content-Type','*'),则post请求会报错 TypeError: invalid media type
app.use((req, res, next) => {
res.setHeader("Access-Control-Allow-Origin", "*")
res.setHeader('Access-Control-Request-Headers', '*')
// 解决中文乱码问题
res.setHeader('Content-Type', 'text/html;charset=utf-8');
res.setHeader('Content-type', 'application/json;charset=utf-8')
req.secretKey = secretKey
next()
})
// 引入路由
const User = require('./router/router/user')
const login = require('./router/router/login')
const file = require('./router/router/file')
const msg = require('./router/router/msg')
const meme = require('./router/router/meme')
const fileadmin = require('./router/router/fileAdmin')
app.use('/user', User)
app.use('/login', login)
app.use('/file', file)
app.use('/msg', msg)
app.use('/meme', meme)
app.use('/fileadmin', fileadmin)
// 全局错误处理
app.use((err, req, res, next) => {
if (err.name === 'UnauthorizedError') {
res.statusCode = 401
logger.error('401 token已过期')
return res.send({ message: 'token已过期'})
}
logger.error('500' + err.message)
res.statusCode = 500
res.send({
message: err.message
})
})
let str = `
'##:::::'##:'##::::'##:'########:'########::'########:'########::'####:
##:'##: ##: ##:::: ##: ##.....:: ##.... ##: ##.....:: ##.... ##:. ##::
##: ##: ##: ##:::: ##: ##::::::: ##:::: ##: ##::::::: ##:::: ##:: ##::
##: ##: ##: #########: ######::: ########:: ######::: ########::: ##::
##: ##: ##: ##.... ##: ##...:::: ##.. ##::: ##...:::: ##.....:::: ##::
##: ##: ##: ##:::: ##: ##::::::: ##::. ##:: ##::::::: ##::::::::: ##::
. ###. ###:: ##:::: ##: ########: ##:::. ##: ########: ##::::::::'####:
:...::...:::..:::::..::........::..:::::..::........::..:::::::::....::
`
// GET Params 请求直接通过req.query 获取参数
// POST 接收 application/x-www-form-urlencoded 请求头 通过req.body 接收参数
// token 解析通过 req.auth 里面有当前token相关用户的信息
app.listen(myIp.port, () => {
console.log(str)
logger.info(`服务已开启访问: ${myIp.ip}:${myIp.port}`)
logger.info(`接口文档已开启访问: ${myIp.ip}:${myIp.port}/public/apidoc`)
})
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
NodeJS
1
https://gitee.com/wherepi/node_server.git
git@gitee.com:wherepi/node_server.git
wherepi
node_server
后台管理系统Server
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385