// 环境变量 const arg = require('arg'); const args = arg({ '--node_env': String, // 环境 }); const node_env = args['--node_env']; process.env.NODE_ENV = node_env; // 全局变量 global.default_config = require('./default_config'); const createError = require('http-errors'); const httpProxy = require('express-http-proxy'); const proxyConfig = require('./proxy'); const express = require('express'); const path = require('path'); const cookieParser = require('cookie-parser'); const logger = require('morgan'); // const multer = require('./middleware/multer') const indexRouter = require('./routes/index'); //test git caipeng var app = express(); app.all("*",function(req,res,next){ //设置允许跨域的域名,*代表允许任意域名跨域 res.header("Access-Control-Allow-Origin","*"); //允许的header类型 res.header("Access-Control-Allow-Headers","content-type"); //跨域允许的请求方式 res.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS"); if (req.method.toLowerCase() === 'options') res.send(200); //让options尝试请求快速结束 else next(); }); // 代理静态资源 app.use('/public', express.static(default_config.public_path)); // 代理接口 for(let api in proxyConfig) { let config = proxyConfig[api]; app.use(api, httpProxy(config.target, config)); } // app.use(multer); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(logger('dev')); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', indexRouter); // catch 404 and forward to error handler app.use(function(req, res, next) { next(createError(404)); }); // error handler app.use(function(err, req, res, next) { // set locals, only providing error in development res.locals.message = err.message; res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page res.status(err.status || 500); res.render('error'); }); module.exports = app;