Skip to content
高度可配置的带有应用生命周期管控的 nodejs web 微框架(同时支持express和koa)
JavaScript HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
test
.gitignore
LICENSE
README.md
app.js
gulpfile.js
index.js
lifecycle.js
package.json

README.md

Trek

base2

Next generation full-stack JavaScript open source solution, based on Express.Artwork by i5ting.

Deps npm GitHub license npm

Features

  • 基于expressjs,可使用connect中间件,路由
  • 抽象app生命周期和中间件(不是connect的中间件),可随意扩展
  • 参数配置,可高度定制
  • 自动挂载路由

more

  • framework
    • express
    • koa
  • env
    • production
    • development
    • test
  • type
    • normal
    • api
    • all
    • service

Install

[sudo]npm install --save base2

Usages

var app = require('base2')({
  // debug: true,
  root:__dirname,
  "views": "views",
  "routes": "routes2",
  "public": "public",
})

// console.log(app);
// app.mount_routes(__dirname + '/routes2');
// app.mount_plugins(__dirname + '/plugins');
app.start(3019);

Note:

  • app.mount_routes
  • app.mount_plugins

more detail see https://github.com/i5ting/base2-examples

Default Options

  var cfg = {
    debug: false,
    favicon: 'favicon.ico',
    favicon_enable: false,
    post_enable: true,
    cookie_enable: true,
    log_enable: true,
    log_level: "dev",
    post_limit_size : '100kb',
    // "views": "views",
    // "routes": "routes",
    // "public": "public",
    pre: function (app) {
      if (app.debug) {
        console.log('pre hook');
      }
    },
    post: function (app) {
      if (app.debug) {
        console.log('post hook');
      }
    }
  }

默认的root是相对于安装的node_modules路径的上级

比如当前路径是base2-examples/node_modules/base2

root = base2-examples/

Extract

  • config.pre
  • settings
    • config.before_settings
    • config.after_settings
  • global_middlewares
    • config.before_global_middlewares
    • config.after_global_middlewares
  • routes
    • config.before_routes
    • config.after_routes
  • config.post

Middlewares

already exist middlewares

  • morgan log
  • serve-favicon
  • cookie-parser
  • body-parser

write a middleware by yourself:

module.exports = function (app) {
  if (app.debug) {
    console.log(app.get('views'));
  }
  
  if (app.get('views')) {
    app.set('views', app.get('views'));
    app.set('view engine', 'jade');
  }
};

in app.js

app.mount_plugin('xxxx_plugins_dir');

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

版本历史

  • v1.0.0 初始化版本

欢迎fork和反馈

如有建议或意见,请在issue提问或邮件

License

this repo is released under the MIT License.

You can’t perform that action at this time.