先端開発におけるmockデータの方法について
フロントエンド開発にはバックエンドのインターフェースを呼び出す必要があります。バックエンドがまだreadyでない場合、ブロック開発プロセスをブロックしないために、フロントエンドは自分でmockデータを必要とします。私たちがよく使う方法は大体以下の二つです。は、Easy Mock などのオンラインmockデータプラットフォームを介してローカルセーバーを通過します。 最初の方法はネット操作が必要です。私は何回かネット接続ができない状況に遭遇しました。自分のネット問題かもしれません。
第二の方法は、自分でいろいろなルートルールを書く必要があります。 mockに戻る遅延時間、ステータスコード、ヘッド、レスポンスデータ は、mockjsを内蔵し、mockデータをより柔軟かつ効率的にする 。は、関数的にdata に戻ることをサポートしています。
fe-appi-mockerをインストールします
1.
デフォルトではGET要求であり、POSTまたは他の要求であれば、
expressベースのserverを使うなら、vue-cli、webpack-dev-severなど、devServer.beforeを配置する必要があります。
第二の方法は、自分でいろいろなルートルールを書く必要があります。
app.get('/api/getuser', (req, res)=>{
res.send({...})
})
ここではnpmパッケージfe-appi-mockerを利用して、インターフェースルールを定義するjsファイルを通じて、すべてのルートに対する処理を実現できます。また、mockjsルールもサポートします。fe-appi-mockerをインストールします
$ npm i -D fe-api-mocker
基本的な使い方1.
./mockData.js
のようなmockインターフェースを定義する。デフォルトではGET要求であり、POSTまたは他の要求であれば、
post /api
/*
*
* status , :200
* delay , :100ms
* headers header
* data , json, , req , query,body, params
*/
module.exports = {
// api 。
// GET 。
"api/1": {
status: 200,
// header
headers: {
'X-Foo': 'bar'
},
// , 100ms
delay: 1000,
//
data: {
msg: 'response data'
}
},
//
"api/2": {
data(req) {
return {
role: req.query.username === 'paul' ? 'admin': 'not admin'
}
}
},
// mockjs
"api/3": {
data: {
// 5~10 list
'list|5-10': [{
// id , 1, 1
'id|+1': 1
}]
}
},
// POST
"post api/1": {
data: {
msg: 'response data'
}
},
//
"post api/2": {
data(req) {
return {
role: req.body.username === 'paul' ? 'admin': 'not admin',
name: req.body.username
}
}
},
}
2.サーバの設定expressベースのserverを使うなら、vue-cli、webpack-dev-severなど、devServer.beforeを配置する必要があります。
module.exports = {
devServer: {
before(app) {
// ./mockData.js
mock(app, path.resolve(__dirname, './mockData.js'));
}
}
}
直接expressを走れば、以下のように配置されます。const mock = require('fe-api-mocker');
const app = require('express')();
// ……
// ./mockData.js
mock(app, path.resolve(__dirname, './mockData.js'));
app.listen(3000);
3.フロントエンド要求//
fetch('http://localhost:3000/api/2?username=paul')
.then(d => d.json())
.then(d => {
console.log(d)
})