// call the packages we need var express = require('express'); // call express var app = express(); // define our app using express var bodyParser = require('body-parser'); var request = require("request"); const edurouter = require('./pbl'); const morgan = require('morgan'); var path = require("path"); var port = "7222"; // set our port //const cors = require('cors') app.use(morgan('dev')); // configure app to use bodyParser() // this will let us get the data from a POST app.use(bodyParser.urlencoded({ extended: true, limit: '3mb' })); app.use(bodyParser.json({ limit: '3mb' })); //暂时全跨域 app.use(function(req, res, next) { ///var allowedOrigins = [config.local.origin,'http://cocorobo.hk','http://www.cocorobo.hk','https://cocorobo.hk','http://cloud.cocorobo.hk','https://cloud.cocorobo.hk']; var origin = req.headers.origin || "*"; //if(allowedOrigins.indexOf(origin) > -1){ res.setHeader('Access-Control-Allow-Origin', origin); //} res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); res.header('Access-Control-Allow-Credentials', true); //修改程序信息与版本 res.header('X-Powered-By', ' 3.2.1') //内容类型:如果是post请求必须指定这个属性 res.header('Content-Type', 'application/json;charset=utf-8') next(); }); /* app.use(cors({ origin:[`http:${config.local.origin}`,'http://www.cocorobo.hk','https://cocorobo.hk','http://cloud.cocorobo.hk','https://cloud.cocorobo.hk'], methods:['GET','POST','PUT','DELETE'], credentials: true // enable set cookie })); */ // all of our routes will be prefixed with /api app.use('/api/pbl', edurouter); // app.use('/game', game); app.all('/download', function(req, res, next) { //req.body.url = "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E4%B8%8B%E8%BD%BD%20%284%29.doc"; request({ url: req.body.url, method: "GET", encoding: null, headers: { 'Accept-Encoding': 'gzip, deflate' } }, function(error, response, body) { if (!error && response.statusCode == 200) { res.setHeader('Content-Type', 'application/force-download'); res.setHeader('Content-Disposition', 'attachment; filename=' + path.basename(req.body.url)); res.setHeader('Content-Length', body.length); res.send(body); } }); }); // START THE SERVER // ============================================================================= app.listen(port); console.log('app happens on port ' + port);