代码拉取完成,页面将自动刷新
const postJSON = require('./utils/postJSON.js');
const setJSON = require('./utils/setJSON.js');
const Controllers = require('./controllers');
const send = require('koa-send');
module.exports = function (router, mongoose) {
var db = mongoose.connection;
router.get('/', function (ctx, next) {
this.body = setJSON(200, 'pixweb api 0.1');
});
db.on('error', (error) => {
console.log('mongodb connected failed', error);
router.get('*', function (ctx, next) {
this.postJSON = postJSON(ctx);
ctx.status = 500;
this.postJSON(500, '数据库连接失败');
});
});
db.once('open', () => {
console.log('mongodb connected successfully, routing list loaded');
var ctrl = new Controllers(mongoose);
router.all('*', function (ctx, next) {
this.postJSON = postJSON(ctx);
this.setJSON = setJSON;
this.ctrl = ctrl;
this.router = router;
this.mongoose = mongoose;
return next();
});
var routerConfigs = {
users: [{
action: 'login',
method: 'post',
params: []
}, {
action: 'register',
method: 'post',
params: []
}, {
action: 'exists',
method: 'get',
params: ['email']
}],
templates: [{
action: 'list',
method: 'get',
params: ['page', 'count']
}, {
action: 'upload',
method: 'post',
params: []
}, {
action: 'uploadTheme',
method: 'post',
params: []
}, {
action: 'uploadThemeImage',
method: 'post',
params: []
}, {
action: 'download',
method: 'get',
params: ['_id']
}],
downloads: [{
action: 'count',
method: 'get',
params: []
}]
}
for (var models in routerConfigs) {
var currentModelActions = routerConfigs[models];
for (var i = currentModelActions.length - 1; i >= 0; i--) {
var request = currentModelActions[i],
url = '/' + [models, request.action].join('/'),
params = request.params.length > 0 ? '/:' + request.params.join('/:') : ''
router[request.method](url + params, (ctx, next) => {
var originalUrl = ctx.originalUrl.split('/');
if(!this.ctrl[originalUrl[1]]) {
this.status = 500;
ctx.body = this.setJSON(500, '服务器提了一个问题:模型 [' + originalUrl[1] + '] 未定义');
return false;
}
if(!this.ctrl[originalUrl[1]][originalUrl[2]]) {
this.status = 500;
ctx.body = this.setJSON(500, '服务器提了一个问题:模型 [' + originalUrl[1] + '] 内方法 [' + originalUrl[2] + '] 未定义');
return false;
}
return this.ctrl[originalUrl[1]][originalUrl[2]].call(this, ctx).then((response) => {
ctx.body = response;
}).catch(function(error) {
// ctx.status = 500;
ctx.body = error;
});
});
};
}
});
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。