fix bug & add remove plugin

This commit is contained in:
yi-ge 2017-01-24 23:19:44 +08:00
parent 0b66a5092b
commit cb2105a07d
6 changed files with 49 additions and 71 deletions

11
.jsbeautifyrc Normal file
View File

@ -0,0 +1,11 @@
{
"indent_size": 2,
"indent_char": " ",
"other": " ",
"indent_level": 0,
"indent_with_tabs": false,
"preserve_newlines": true,
"max_preserve_newlines": 2,
"jslint_happy": true,
"indent_handlebars": true
}

View File

@ -151,7 +151,7 @@ $ docker run -itd -p 80:80 -p 443:443 -v `pwd`/nginx_config:/etc/nginx/conf.d ng
> 引入插件的版本将会持续更新 > 引入插件的版本将会持续更新
引入的插件: 引入的插件:
`koa@2 koa-body@2 koa-router@next koa-session2 koa-static2 koa-compose koa-multer require-directory babel-cli babel-register babel-plugin-transform-runtime babel-preset-es2015 babel-preset-stage-2 gulp gulp-eslint eslint eslint-config-standard eslint-friendly-formatter eslint-plugin-html eslint-plugin-promise nodemailer promise-mysql` `koa@2 koa-body@2 koa-router@next koa-session2 koa-static2 koa-compose require-directory babel-cli babel-register babel-plugin-transform-runtime babel-preset-es2015 babel-preset-stage-2 gulp gulp-eslint eslint eslint-config-standard eslint-friendly-formatter eslint-plugin-html eslint-plugin-promise nodemailer promise-mysql`
**koa2**: HTTP框架 **koa2**: HTTP框架
 Synopsis: HTTP framework.  Synopsis: HTTP framework.
@ -177,10 +177,6 @@ $ docker run -itd -p 80:80 -p 443:443 -v `pwd`/nginx_config:/etc/nginx/conf.d ng
 Synopsis: Compose several middleware into one.  Synopsis: Compose several middleware into one.
 From: https://github.com/koajs/compose  From: https://github.com/koajs/compose
**koa-multer**: 处理数据中间件
 Synopsis: Multer is a node.js middleware for handling multipart/form-data for koa.
 From: https://github.com/koa-modules/multer
**require-directory**: 递归遍历指定目录 **require-directory**: 递归遍历指定目录
 Synopsis: Recursively iterates over specified directory.  Synopsis: Recursively iterates over specified directory.
 From: https://github.com/troygoode/node-require-directory  From: https://github.com/troygoode/node-require-directory
@ -270,6 +266,10 @@ HTTP2推送中间件https://github.com/silenceisgolden/koa-server-push
**koa-onerror**: **koa-onerror**:
Koa的错误拦截中间件需要配合上面的插件使用https://github.com/koajs/onerror Koa的错误拦截中间件需要配合上面的插件使用https://github.com/koajs/onerror
**koa-multer**: 处理数据中间件
 Synopsis: Multer is a node.js middleware for handling multipart/form-data for koa.
 From: https://github.com/koa-modules/multer
目录结构说明 目录结构说明
------------ ------------

View File

@ -13,7 +13,6 @@
"koa": "^2.0.0", "koa": "^2.0.0",
"koa-body": "^2.0.0", "koa-body": "^2.0.0",
"koa-compose": "^2.5.1", "koa-compose": "^2.5.1",
"koa-multer": "^1.0.1",
"koa-router": "^7.0.1", "koa-router": "^7.0.1",
"koa-session2": "^1.0.8", "koa-session2": "^1.0.8",
"koa-static2": "^0.1.8", "koa-static2": "^0.1.8",

View File

@ -2,7 +2,9 @@ import Koa2 from 'koa'
import KoaBody from 'koa-body' import KoaBody from 'koa-body'
import KoaSession from 'koa-session2' import KoaSession from 'koa-session2'
import KoaStatic from 'koa-static2' import KoaStatic from 'koa-static2'
import { SystemConfig } from './config' import {
SystemConfig
} from './config'
import path from 'path' import path from 'path'
import MainRoutes from './routes/main-routes' import MainRoutes from './routes/main-routes'
import ErrorRoutes from './routes/error-routes' import ErrorRoutes from './routes/error-routes'
@ -11,13 +13,18 @@ import ErrorRoutes from './routes/error-routes'
const app = new Koa2() const app = new Koa2()
const env = process.env.NODE_ENV || 'development' // Current mode const env = process.env.NODE_ENV || 'development' // Current mode
app.use(KoaBody({ app
.use(KoaBody({
multipart: true, multipart: true,
strict: false strict: false,
// formidable: {uploadDir: path.join(__dirname, '../../../assets/uploads/')} formidable: {
uploadDir: path.join(__dirname, '../assets/uploads')
}
})) // Processing request })) // Processing request
.use(KoaStatic('assets', path.resolve(__dirname, '../assets'))) // Static resource .use(KoaStatic('assets', path.resolve(__dirname, '../assets'))) // Static resource
.use(KoaSession({key: SystemConfig.Session_Key})) // Set Session .use(KoaSession({
key: SystemConfig.Session_Key
})) // Set Session
// .use(PluginLoader(SystemConfig.System_plugin_path)) // .use(PluginLoader(SystemConfig.System_plugin_path))
.use((ctx, next) => { .use((ctx, next) => {
if (ctx.request.header.host.split(':')[0] === 'api.XXX.com' || ctx.request.header.host.split(':')[0] === '127.0.0.1') { if (ctx.request.header.host.split(':')[0] === 'api.XXX.com' || ctx.request.header.host.split(':')[0] === '127.0.0.1') {

View File

@ -1,35 +1,3 @@
import multer from 'koa-multer' export default (ctx) => {
import path from 'path' ctx.body = ctx.request.body
/***
* 说明该方法只支持`multipart/form-data`方式的上传postman可以调试
*/
let storage = multer.diskStorage({
// 设置上传后文件路径
destination: function (req, file, cb) {
cb(null, path.join(__dirname, '../../../assets/uploads/'))
},
// 给上传文件重命名,获取添加后缀名
filename: function (req, file, cb) {
let fileFormat = (file.originalname).split('.')
cb(null, Date.now() + '.' + fileFormat[fileFormat.length - 1])
} }
})
export let upload = multer({
storage: storage,
// dest: 'uploads/', //上传文件保存的路径,如果你想在上传时进行更多的控制, 你可以使用storage选项替代dest. Multer 具有 DiskStorage 和 MemoryStorage 两个存储引擎; 另外还可以从第三方获得更多可用的引擎.
// fileFilter: function (req, file, cb) {
// let mimetypes = (['text/*', 'image/*', 'video/*', 'audio/*', 'application/zip']).join(',');
// let testItems = file.mimetype.split('/');
// if ((new RegExp('\b' + testItems[0] + '/\*', 'i')).test(mimetypes) || (new RegExp('\*/' + testItems[1] + '\b', 'i')).test(mimetypes) || (new RegExp('\b' + testItems[0] + '/' + testItems[1] + '\b', 'i')).test(mimetypes)) {
// cb(null, true);
// } else {
// return cb(new Error('Only image, plain text, audio, video and zip format files are allowed!'), false);
// }
// }, // fileFilter要在这里声明才行用instance.fileFilter = funciton(){};是不管用的,
limits: {
fileSize: 200 * 1024 * 1024 // Max file size in bytes (20 MB) 限制上传的文件大小,不设置则是无限
}
})

View File

@ -7,14 +7,7 @@ router
.get('/', function (ctx, next) { .get('/', function (ctx, next) {
ctx.body = '禁止访问!' ctx.body = '禁止访问!'
}) // HOME 路由 }) // HOME 路由
.all('/upload', controllers.upload.upload.array('file'), function (ctx, next) { // 上传到本地示例 .all('/upload', controllers.upload.default)
return new Promise(function (resolve, reject) {
// 允许跨域,正式环境要改为对应域名
ctx.set('Access-Control-Allow-Origin', '*')
// ctx.req.files.filename = ctx.req.files.path
resolve(ctx.body = ctx.req.files)
})
})
.get('/api/:name', controllers.api.Get) .get('/api/:name', controllers.api.Get)
.post('/api/:name', controllers.api.Post) .post('/api/:name', controllers.api.Post)
.put('/api/:name', controllers.api.Put) .put('/api/:name', controllers.api.Put)