2.0.3 • Published 4 years ago

@twesix/express-auto-route v2.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

express-auto-route

npm badge npm downloads license

基于express的简易自动化应用配置框架

安装

npm install --save @twesix/express-auto-route

用途

在使用express开发后台应用的过程中,总是会去做一些重复性的工作,比如配置路由,中间件,异常和错误处理。 为了简化开发过程,减少代码的重复,我把在使用express时的一些公共代码抽出来,写成了这个独立的模块。

导入了这个框架之后, 再基于express开发应用时只需要编写对应路径的处理函数 路径的配置, 错误的处理都不再需要去关注

用法

const ear = require('./index')

const app = ear()
// app 就是 express() 的返回对象
// 只不过添加了一些常用方法

// setup your app
app.set('trust proxy', true)

// app.$setCgiRoot('handlers') // 默认就是 'handlers', 可以改为其他目录

// 注入到res对象上面的属性, 方便在handler中调用
app.$addInjection('$testInjection', 'test injection')

// 默认监听10000端口, 127.0.0.1本地地址
app.$start()

handler的编写

// handlers 目录内部每一个文件都会被映射到路径上去
// 每个文件都是一个路径对应的处理模块
// 每个文件的module.exports.POST必须是数组或者函数
// 
// 如果是函数, 这直接执行, 这个函数必须调用res.$ok 或者res.$error来结束这次请求, 否则就会一直没有响应, 直到连接超时
// 如果是数组, 则会依次执行数组内的函数, 除了最后一个函数外, 每个函数有3个参数(req, res, next), 如果不调用next的话, 代表后面的函数不执行了, 必须调用res.$ok 或者res.$error来结束请求, 否则就会一直没有响应, 直到连接超时
// module.exports.params是一个对象, 代表这个路径的请求需要的参数, 框架会在调用handler之前自动进行参数检查, 用法详见示例

// return_body.js
module.exports.post = function(req,res)
{
    const data = {
        body: req.body,
        $testInjection: res.$testInjection // 在这里使用之前注入res对象的属性
    }
    res.$ok(data)
}

module.exports.params = {
    bar: true
}
2.0.3

4 years ago

2.0.2

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago