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框架
 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.
 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**: 递归遍历指定目录
 Synopsis: Recursively iterates over specified directory.
 From: https://github.com/troygoode/node-require-directory
@ -270,6 +266,10 @@ HTTP2推送中间件https://github.com/silenceisgolden/koa-server-push
**koa-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-body": "^2.0.0",
"koa-compose": "^2.5.1",
"koa-multer": "^1.0.1",
"koa-router": "^7.0.1",
"koa-session2": "^1.0.8",
"koa-static2": "^0.1.8",

View File

@ -2,7 +2,9 @@ import Koa2 from 'koa'
import KoaBody from 'koa-body'
import KoaSession from 'koa-session2'
import KoaStatic from 'koa-static2'
import { SystemConfig } from './config'
import {
SystemConfig
} from './config'
import path from 'path'
import MainRoutes from './routes/main-routes'
import ErrorRoutes from './routes/error-routes'
@ -11,15 +13,20 @@ import ErrorRoutes from './routes/error-routes'
const app = new Koa2()
const env = process.env.NODE_ENV || 'development' // Current mode
app.use(KoaBody({
app
.use(KoaBody({
multipart: true,
strict: false
// formidable: {uploadDir: path.join(__dirname, '../../../assets/uploads/')}
})) // Processing request
.use(KoaStatic('assets', path.resolve(__dirname, '../assets'))) // Static resource
.use(KoaSession({key: SystemConfig.Session_Key})) // Set Session
// .use(PluginLoader(SystemConfig.System_plugin_path))
.use((ctx, next) => {
strict: false,
formidable: {
uploadDir: path.join(__dirname, '../assets/uploads')
}
})) // Processing request
.use(KoaStatic('assets', path.resolve(__dirname, '../assets'))) // Static resource
.use(KoaSession({
key: SystemConfig.Session_Key
})) // Set Session
// .use(PluginLoader(SystemConfig.System_plugin_path))
.use((ctx, next) => {
if (ctx.request.header.host.split(':')[0] === 'api.XXX.com' || ctx.request.header.host.split(':')[0] === '127.0.0.1') {
ctx.set('Access-Control-Allow-Origin', '*')
ctx.set('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept')
@ -27,10 +34,10 @@ app.use(KoaBody({
ctx.set('Access-Control-Allow-Credentials', true) // 允许带上 cookie
}
return next()
})
.use(MainRoutes.routes())
.use(MainRoutes.allowedMethods())
.use(ErrorRoutes())
})
.use(MainRoutes.routes())
.use(MainRoutes.allowedMethods())
.use(ErrorRoutes())
if (env === 'development') { // logger
app.use((ctx, next) => {

View File

@ -1,35 +1,3 @@
import multer from 'koa-multer'
import path from 'path'
/***
* 说明该方法只支持`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) 限制上传的文件大小,不设置则是无限
}
})
export default (ctx) => {
ctx.body = ctx.request.body
}

View File

@ -7,14 +7,7 @@ router
.get('/', function (ctx, next) {
ctx.body = '禁止访问!'
}) // HOME 路由
.all('/upload', controllers.upload.upload.array('file'), function (ctx, next) { // 上传到本地示例
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)
})
})
.all('/upload', controllers.upload.default)
.get('/api/:name', controllers.api.Get)
.post('/api/:name', controllers.api.Post)
.put('/api/:name', controllers.api.Put)