| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 | /** * Created by zhengguorong on 16/11/4. */var jsonpatch = require('fast-json-patch')var Pages = require('./pages.model')var tools = require('../../util/tools')const respondWithResult = (res, statusCode) => {  statusCode = statusCode || 200  return function (entity) {    if (entity) {      return res.status(statusCode).json(entity)    }    return null  }}const patchUpdates = (patches) => {  return function (entity) {    try {      jsonpatch.apply(entity, patches, true)    } catch (err) {      return Promise.reject(err)    }    return entity.save()  }}const removeEntity = (res) => {  return function (entity) {    if (entity) {      return entity.remove()        .then(() => {          res.status(204).end()        })    }  }}const handleEntityNotFound = (res) => {  return function (entity) {    if (!entity) {      res.status(404).end()      return null    }    return entity  }}const handleError = (res, statusCode) => {  statusCode = statusCode || 500  return function (err) {    res.status(statusCode).send(err)  }}module.exports.index = (req, res) => {  return Pages.find().exec()    .then(respondWithResult(res))    .catch(handleError(res))}module.exports.findByLoginId = (req, res) => {  var loginId = req.user.loginId  var type = req.query.type;  return Pages.find({ loginId: loginId, type: type }).exec()    .then(respondWithResult(res))    .catch(handleError(res))}// Gets a single Pages from the DBmodule.exports.show = (req, res) => {  return Pages.findById(req.params.id).exec()    .then(handleEntityNotFound(res))    .then(respondWithResult(res))    .catch(handleError(res))}// Creates a new Pages in the DBmodule.exports.create = (req, res) => {  //添加作者信息  req.body.loginId = req.user.loginId  return Pages.create(req.body)    .then(respondWithResult(res, 201))    .catch(handleError(res))}// Upserts the given Pages in the DB at the specified IDmodule.exports.update = (req, res) => {  if (req.body._id) {    delete req.body._id  }  if (req.body.type === 'h5') {    tools.renderFile('template.html', req.body, (html) => {      tools.saveFile(req.params.id + '.html', html)    })  } else if (req.body.type === 'spa') {    tools.renderFile('spa.html', req.body, (html) => {      tools.saveFile(req.params.id + '.html', html)    })  }  return Pages.findOneAndUpdate({ _id: req.params.id }, req.body, { upsert: true, setDefaultsOnInsert: true, runValidators: true }).exec()    .then(respondWithResult(res))    .catch(handleError(res))}// Updates an existing Pages in the DBmodule.exports.patch = (req, res) => {  if (req.body._id) {    delete req.body._id  }  return Pages.findById(req.params.id).exec()    .then(handleEntityNotFound(res))    .then(patchUpdates(req.body))    .then(respondWithResult(res))    .catch(handleError(res))}// Deletes a Pages from the DBmodule.exports.destroy = (req, res) => {  return Pages.findById(req.params.id).exec()    .then(handleEntityNotFound(res))    .then(removeEntity(res))    .catch(handleError(res))}
 |