nyx_server
Version:
Node内容发布
53 lines (47 loc) • 1.97 kB
JavaScript
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;