0.0.2 • Published 6 years ago

express-api-require v0.0.2

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

express-api-require

基于express的请求接口调用,把 *.json 定向到 *.js 里,以中间件形式写响应代码~

使用

安装

npm install express-api-require

运行

app.js

const express = require('express')
const app = express()
const api = require('express-api-require')

// 注入
app.use(api({
    root: __dirname,
    process(req, res, next) {
        res.set('Access-Control-Allow-Origin', '*');
    }
}))

// 托管静态文件
app.use(express.static('./'))

app.listen(3000, () => console.log('Example app listening on port 3000!'))

/api/api.js

module.exports = (req, res, next) => {
    const data = {
        status: 'ok'
    }
    res.end(JSON.stringify(data))
}

/api/data.json

{}
请求路径说明
/api/data.json因为真实文件存在,使用 express.static 直接响应
/api/api.json因为真实文件不存在,而 api.js 存在,走中间件模式
/api/404.json因为真实文件不存在,又没有找到 404.js ,走 next()

扩展

支持配合其他中间件形式去处理响应,如配合 res-json 支持响应 JSON 和 JSONP 数据:

const express = require('express')
const app = express()
const api = require('express-api-require')
const json = require('res-json')

// 注入 res.json, res.jsonp 方法
app.use(json())

// 注入
app.use(api({
    root: __dirname
}))

配置

名称类型说明默认值
rootstring请求根目录process.cwd()
filterFunctionrequest 过滤器,返回 false 时将直接 next() 该请求return true
extMapObject请求扩展名映射{json: 'js'}
processFunction预处理器,当返回 false 时停止处理注意,该处理只在中间件文件或者真实 JSON 文件存在时注入-

License

MIT