Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/talltotal/express-kv-api
express插件:key-value 形式,简单模拟api
https://github.com/talltotal/express-kv-api
express mock
Last synced: about 2 hours ago
JSON representation
express插件:key-value 形式,简单模拟api
- Host: GitHub
- URL: https://github.com/talltotal/express-kv-api
- Owner: talltotal
- Created: 2017-12-25T08:10:12.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-04T04:25:40.000Z (over 1 year ago)
- Last Synced: 2024-04-25T11:21:35.616Z (7 months ago)
- Topics: express, mock
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/express-kv-api
- Size: 218 KB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# express-kv-api
express插件:key-value 形式,简单模拟api,结合 mockjs 更灵活。最简单的后端请求模拟方式,可用于前端本地测试。
## Installation
```cmd
npm install express-kv-api --save-dev
```## Usage
### Server
#### for `express````js
const bodyParser = require('body-parser')
const kvApi = require('express-kv-api')
const express = require('express')const path = require('path')
const process = require('process')const app = express()
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.use(kvApi({
// 接口文件夹路径,默认为项目下的`server`文件,支持 json/js 文件
dirPath: path.join(process.cwd(), 'server'),
// 是否监听接口文件夹内变动,默认true
watch: true,
// 数据处理函数,可用于统一的数据包装,默认直接返回data
dataWrap (data) {
return {
success: true,
data: data,
message: '请求成功',
}
},
// 返回对象用于「函数」类型value,以下为默认方式
reqDataWrap (req, params) {
return {
params,
...req.params,
...req.query,
...req.body
}
},
// 以目录结构划分模块
moduleByPath: false,
// 请求的默认方法,默认为all
defaultMathod: 'post'
}))app.listen(8080)
...```
#### for `webpack-dev-server`
```js
const bodyParser = require('body-parser')
const kvApi = require('express-kv-api')const config = {
...,
after (app) {
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.use(kvApi())
}
}
```#### for `@vue/cli-service`
```js
const bodyParser = require('body-parser')
const kvApi = require('express-kv-api')const config = {
...,
devServer: {
...,
after (app) {
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.use(kvApi())
}
}
}
```#### for `[email protected]`
```js
const config = {
...,
beforeDevServer (app) {
app.use(kvApi())
}
}
```### API
接口文件,可获取到请求参数,做简单逻辑处理。
请求地址按[express格式](http://expressjs.com/en/4x/api.html#path-examples),
返回数据按[mock语法规范](https://github.com/nuysoft/Mock/wiki/Syntax-Specification)。
书写示范:```js
module.exports = {
/**
* 指明method为post,默认为all
* 延迟1000ms请求返回
*/
'post|1000 /api/add': true,
/**
* function形式,将参数传入
* {
* params:[],
* ...req.query,
* ...req.body,
* }
*/
'/api/service/(getAll|getList)' (data) {
return {
type: data.params[0],
id: data.id,
'child|2-8': [
{
'id|+1': data.id * 100,
name: 'test3',
}
]
}
},
}
```