app.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. var express = require('express');
  2. var path = require('path');
  3. var cookieParser = require('cookie-parser');
  4. var logger = require('morgan');
  5. const cors = require("cors");
  6. const Joic = require("joi");
  7. // const bodyParser = require('body-parser');
  8. var app = express();
  9. //解决跨域问题
  10. app.use(cors());
  11. app.use(logger('dev'));
  12. app.use(express.json());
  13. // app.use(bodyParser.json());// 用于解析 application/json 类型的请求体÷
  14. //配置解析表单数据的中间件,只能解析application/x-www-form-urlencoded格式的表单数据
  15. app.use(express.urlencoded({ extended: true }));
  16. app.use(cookieParser());
  17. app.use(express.static(path.join(__dirname, 'public')));
  18. //在路由之前封装返回报错函数
  19. app.use((req, res, next) => {
  20. res.rescc = function (message, status = 500, data) {
  21. res.send({
  22. status,
  23. message: message instanceof Error ? message.message : message,
  24. data
  25. })
  26. }
  27. next();
  28. })
  29. //在路由之前解析token中间件
  30. // const expressJWT = require("express-jwt");
  31. // const config = require('./config.js');
  32. // app.use(expressJWT({
  33. // secret: config.jwtSecretKey
  34. // }).unless({
  35. // path: [/^\/api/]
  36. // }))
  37. //导入使用router模块
  38. //用户注册登录
  39. // const userRounter = require('./routes/user/user.js');
  40. // app.use('/api/user', userRounter);
  41. //用户信息
  42. // const userinfoRounter = require('./routes/user/userInfo.js');
  43. // app.use('/my', userinfoRounter);
  44. //天气
  45. const weatherInchinaRounter = require('./routes/weather/inchina.js');
  46. app.use('/weather/inchina', weatherInchinaRounter);
  47. const tempapiRounter = require('./routes/weather/temperature.js');
  48. app.use('/weather/tempapi', tempapiRounter);
  49. //疫苗接种
  50. // const vaccinesRounter = require('./routes/vaccines/vaccine.js');
  51. // app.use('/my/vaccines', vaccinesRounter);
  52. //接入deepseek
  53. // const openaiRounter = require('./routes/openai/openai.js');
  54. // app.use('/api/deepseek', openaiRounter);
  55. // const openaiListRounter = require('./routes/openai/openaiList.js');
  56. // app.use('/my/aitalk', openaiListRounter);
  57. //定义错误级别的中间件
  58. app.use((err, req, res, next) => {
  59. //验证失败导致的错误
  60. if (err instanceof Joic.ValidationError) return res.rescc(err);
  61. //token验证失败的错误
  62. if (err.name === 'UnauthorizedError') return res.rescc("身份验证失败!");
  63. res.rescc(err);
  64. })
  65. module.exports = app;