1.0.0 • Published 3 years ago

@nioh/core v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

基础包: core

安装

Install with npm

npm i @server/core -S --registry=http://npm.zkh360.com

目录结构

├── package.json
├── server
|   ├── src
|   |   ├── app.ts
|   |   ├── controller
|   |   |   ├── demo.ts
|   |   |   └── home.ts
|   |   ├── middleware
|   |   |   ├── middlewareA.ts
|   |   |   └── middlewareB.ts
|   |   └── router.ts
|   ├── views
|   └── dist
├── static
|   ├── bundle
|   └── source
|         └── home
├── log
|   ├── error.log
|   └── access.log
├── test
|   ├── middleware
|   |   └── middlewareA.test.js
|   └── controller
|       └── home.test.js
├── nodemon.json
└── README.md

使用

应用会自动读取 controller 和 middleware 文件夹,将模块合并到对象 app.controllers 和 app.middlwares

// app.ts
import Core from '@server/core'

const app = new Core({
  baseDir: __dirname,
  port: 3000,
  keys: 'keys for encrypt',
  error?: 'json',                         // 报错页面类型, 支持 json/html
  helmet?: false                          // 安全头设置,默认关闭, Boolean
  static?: { maxage: 360000 }             // 设置静态资源参数,详细参数可参照 koajs/static
  nunjucksConfig?: {}                     // nunjucks 原始配置, object
  nunjucksExtendEnvironment?: env => {}   // nunjucks 实例拓展, Function
})

app.use(app.middlewares.middlewareA)

app.use(async (ctx, next) => {
  ctx.state.token = 122
  await next()
})

app.start()
// router.ts
export = (router, app) => {
  router.get('/demo', app.controllers.demo.index)
}

TODO

  • 包的命名
  • 二期改造

ChangeLog

License

2019@ZKH-FE