nyx_server
Version:
Node内容发布
155 lines (139 loc) • 5.71 kB
JavaScript
/* global Buffer */
//处理碎片
var express = require("express");
var chipRouter = express.Router();
var _ = require("lodash");
var chipLoader = require("../core/ChipLoader");
var chipFn = require("../core/Chip");
var Log = require('../core/log');
var cache = require("../core/Cache").cache;
/**
* 碎片预览
* @param chipId 碎片id(类型)
* @param dataId 碎片预览的数据id
*/
chipRouter.get('/preview/:chiptype/:dataId', function (req, res) {
var context = req.NyxReqContext;
var chippType = req.params.chiptype; //碎片id(类型)
var dataId = req.params.dataId; //碎片需要处理数据的id;
var chipParams = _.clone(req.query);
chipParams.id = dataId;
res.writeHead(200, { 'Content-Type': 'text/html;charset=UTF-8' });
var logger = context.log;
logger.info('Router 碎片预览开始');
chipLoader.loadChip.bind(context)(chippType).then(function (chip) {
return chipFn.preview.bind(context)(chip, chipParams, "preview").then(function (content) {
logger.info('Router 碎片预览完成');
res.end(content);
}).catch(function (err) {
logger.error(err);
logger.info('Router 碎片预览异常完成');
res.end(res.end(JSON.stringify({ result: false, err: err.message })));
});
}).catch(function (err) {
logger.error(err);
logger.info('Router 碎片预览异常完成');
res.end(res.end(JSON.stringify({ result: false, err: err.message })));
});
});
/**
* 得到chip的编辑界面
* @params {String}chiptype 碎片类型
* @params {String}uiname 编辑页名称
*/
chipRouter.get("/ui/:uiname/:chiptype/:dataId", function (req, res) {
var context = req.NyxReqContext;
var chippType = req.params.chiptype; //碎片id(类型)
var uiname = req.params.uiname;
var dataId = req.params.dataId;
var params = _.clone(req.query);
res.writeHead(200, { 'Content-Type': 'text/html;charset=UTF-8' });
var logger = context.log;
logger.info('Router 调用碎片UI开始');
chipLoader.loadChip.bind(context)(chippType).then(function (chip) {
return chipFn.ui.bind(context)(chip, uiname, dataId, params).then(function (content) {
logger.info('Router 调用碎片UI完成');
res.end(content);
}).catch(function (err) {
logger.error(err);
logger.info('Router 调用碎片UI异常完成');
res.end(res.end(JSON.stringify({ result: false, err: err.message })));
});
}).catch(function (err) {
logger.error(err);
logger.info('Router 调用碎片UI异常完成');
res.end(err.message);
});
});
chipRouter.all("/api/:apiname/:chiptype", function (req, res) {
var context = req.NyxReqContext;
var chippType = req.params.chiptype; //碎片id(类型)
var apiname = req.params.apiname;
var params = _.clone(req.body, true);
params = _.assign({} , params , req.query);
res.writeHead(200, { 'Content-Type': 'application/json;charset=UTF-8' });
var logger = context.log;
logger.info('Router 调用碎片API开始');
chipLoader.loadChip.bind(context)(chippType).then(function (chip) {
return chipFn.api.bind(context)(chip, apiname, params).then(function (content) {
logger.info('Router 调用碎片API完成');
res.end(JSON.stringify(content));
}).catch(function (err) {
logger.error(err);
logger.info('Router 调用碎片API异常完成');
res.end(JSON.stringify({ result: false, err: err.message }));
});
}).catch(function (err) {
logger.error(err);
logger.info('Router 调用碎片API异常完成');
res.end(err.message);
});
});
/**
*
*/
chipRouter.get("/publish/:chiptype/:dataId", function (req, res) {
console.log('---------------------');
var context = req.NyxReqContext;
var chippType = req.params.chiptype; //碎片id(类型)
var dataId = req.params.dataId; //碎片需要处理数据的id;
var logger = context.log;
var params = _.clone(req.query);
params.id = dataId;
logger.info('Router 碎片发布开始');
chipLoader.loadChip.bind(context)(chippType).then(function (chip) {
return chipFn.publish.bind(context)(chip, params).then(function (result) {
logger.info('Router 碎片发布完成');
res.end(JSON.stringify({ result: true }));
}).catch(function (err) {
logger.error(err);
logger.info('Router 碎片发布异常完成');
res.end(JSON.stringify({ result: false, err: err.message }));
});
}).catch(function (err) {
logger.error(err);
res.end(err.message);
});
});
chipRouter.all("/edit/:chiptype/:dataId" , function(req , res){
var context = req.NyxReqContext;
var chippType = req.params.chiptype;
var editParams = req.body;
var dataId = req.params.dataId;
var logger = context.log;
logger.info('Router 碎片编辑开始');
chipLoader.loadChip.bind(context)(chippType).then(function (chip) {
return chipFn.edit.bind(context)(chip, dataId , editParams).then(function (result) {
logger.info('Router 碎片编辑完成');
res.end(JSON.stringify({ result: true }));
}).catch(function (err) {
logger.error(err);
logger.info('Router 碎片编辑异常');
res.end(JSON.stringify({ result: false, err: err.message }));
});
}).catch(function (err) {
logger.error(err);
res.end(err.message);
});
});
module.exports = chipRouter;