| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- var express = require('express');
- var path = require('path');
- var cookieParser = require('cookie-parser');
- var logger = require('morgan');
- const cors = require("cors");
- const Joic = require("joi");
- // const bodyParser = require('body-parser')
- //
- var app = express();
- //解决跨域问题
- app.use(cors());
- app.use(logger('dev'));
- app.use(express.json());
- // app.use(bodyParser.json());// 用于解析 application/json 类型的请求体÷
- //配置解析表单数据的中间件,只能解析application/x-www-form-urlencoded格式的表单数据
- app.use(express.urlencoded({ extended: true }));
- app.use(cookieParser());
- app.use(express.static(path.join(__dirname, 'public')));
- //在路由之前封装返回报错函数
- app.use((req, res, next) => {
- res.rescc = function (message, status = 500, data) {
- res.send({
- status,
- message: message instanceof Error ? message.message : message,
- data
- })
- }
- next();
- })
- //在路由之前解析token中间件
- // const expressJWT = require("express-jwt");
- // const config = require('./config.js');
- // app.use(expressJWT({
- // secret: config.jwtSecretKey
- // }).unless({
- // path: [/^\/api/]
- // }))
- //导入使用router模块
- //用户注册登录
- // const userRounter = require('./routes/user/user.js');
- // app.use('/api/user', userRounter);
- //用户信息
- // const userinfoRounter = require('./routes/user/userInfo.js');
- // app.use('/my', userinfoRounter);
- //天气
- const weatherInchinaRounter = require('./routes/weather/inchina.js');
- app.use('/weather/inchina', weatherInchinaRounter);
- //获取所有气象层级
- const weatherLevel = require('./routes/weather/level.js');
- app.use('/weather', weatherLevel);
- //获取所有气象变量
- const weatherVariables = require('./routes/weather/variables.js');
- app.use('/weather', weatherVariables);
- // 别问,问就是测试用的
- const test = require('./routes/grib2/test.js');
- app.use('/api', test);
- // 获取全球指定层级与变量
- const getAreaWeatherData = require('./routes/grib2/getAreaWeatherData.js');
- app.use('/weather', getAreaWeatherData);
- const getWeatherWindData = require('./routes/grib2/getWeatherWindData.js');
- app.use('/weather', getWeatherWindData);
- const tempapiRounter = require('./routes/weather/temperature.js');
- app.use('/weather/tempapi', tempapiRounter);
- const mapTiles = require('./routes/tiles/map.js');
- app.use('/tiles', mapTiles);
- const cloudTiles = require('./routes/tiles/cloud.js');
- app.use('/tiles', cloudTiles);
- //疫苗接种
- // const vaccinesRounter = require('./routes/vaccines/vaccine.js');
- // app.use('/my/vaccines', vaccinesRounter);
- //接入deepseek
- // const openaiRounter = require('./routes/openai/openai.js');
- // app.use('/api/deepseek', openaiRounter);
- // const openaiListRounter = require('./routes/openai/openaiList.js');
- // app.use('/my/aitalk', openaiListRounter);
- //定义错误级别的中间件
- app.use((err, req, res, next) => {
- //验证失败导致的错误
- if (err instanceof Joic.ValidationError) return res.rescc(err);
- //token验证失败的错误
- if (err.name === 'UnauthorizedError') return res.rescc("身份验证失败!");
- res.rescc(err);
- })
- module.exports = app;
|