UNPKG

nyx_server

Version:

Node内容发布

155 lines (139 loc) 5.71 kB
/* 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;