UNPKG

nyx_server

Version:

Node内容发布

53 lines (47 loc) 1.97 kB
var path = require('path'); var express = require('express'); var Promise = require('bluebird'); var manageQuery = require('../core/manage/manageQuery'); var Log = require('../core/log'); var cache = require("../core/Cache").cache; var manageapi = express.Router(); manageapi.get('/serverProjects', function (req, res) { var context = req.NyxReqContext; var logger = context.log; res.header("Access-Control-Allow-Origin", "*"); manageQuery.getServerProjects.bind(context)() .then(manageQuery.convertProjects) .then(function(projects) { res.send(JSON.stringify(projects)); }); }); manageapi.get('/project', function (req, res) { var context = req.NyxReqContext; var name = req.query.name; var logger = context.log; res.header("Access-Control-Allow-Origin", "*"); var project = manageQuery.getProject.bind(context)(name); var projectInfo = project.then(manageQuery.convertProject); var templates = project.then(manageQuery.loadTemplates.bind(context)).map(manageQuery.convertTemplate); var chips = project.then(manageQuery.loadChips.bind(context)).map(manageQuery.convertChip); Promise.all([projectInfo, templates, chips]) .spread(function (projectInfo, templates, chips) { res.send(JSON.stringify({ "info": projectInfo, "templates": templates, "chips": chips})); }); }); manageapi.get('/ips', function (req, res) { res.header("Access-Control-Allow-Origin", "*"); res.send(JSON.stringify(manageQuery.getIps())); }); manageapi.all('/**', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With"); res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); res.header("X-Powered-By",' 3.2.1') if(req.method=="OPTIONS") res.send(200);/*让options请求快速返回*/ else next(); }); module.exports = manageapi;