fjh
Version:
博客api
37 lines (31 loc) • 1.25 kB
JavaScript
// 创建服务器
const express = require('express');
const app = express();
// 托管网站文件
app.use(express.static('./web'));
// 解决跨域与解析表单
const cors = require('cors');
app.use(cors());
app.use(express.urlencoded({ extended: false }));
// 解析 token
const config = require('./public/config.js');
const { expressjwt: expressJWT } = require('express-jwt');
app.use(expressJWT({ secret: config.jwtSecretKey, algorithms: ['HS256'] }).unless({ path: [/^\/api/] }));
// 注册路由
const userRouter = require('./router/user');
app.use('/api', userRouter);
// 错误中间件
const joi = require('@hapi/joi');
app.use((err, req, res, next) => {
if (err instanceof joi.ValidationError) return res.send({ message: '数据验证失败!' });
if (err.name === 'UnauthorizedError') return res.send({ message: '暂未登录!' });
res.send({ message: '发生未知错误!' });
})
// 启动服务器兼初始化数据库
app.listen(80, () => {
const db = require('./mysql/index.js');
db.query('truncate table captchadata', (err, results) => {
if (err) return console.log({ status: 0, message: err.message });
console.log('启动服务器')
})
})