最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解express + mock讓前后臺(tái)并行開(kāi)發(fā)

 更新時(shí)間:2018年06月06日 10:03:47   作者:kanshouji911  
這篇文章主要介紹了詳解express + mock讓前后臺(tái)并行開(kāi)發(fā),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

在我們平時(shí)項(xiàng)目剛啟動(dòng)時(shí),由于后臺(tái)也是剛開(kāi)始開(kāi)發(fā),我們前端往往在開(kāi)發(fā)過(guò)程中沒(méi)有數(shù)據(jù)和接口請(qǐng)求的,都要造一些假數(shù)據(jù)進(jìn)去或者使用mock造一些數(shù)據(jù)進(jìn)去,但是這樣的話往往會(huì)偶合一些沒(méi)用的代碼進(jìn)去。到時(shí)候還得刪除。

下面來(lái)介紹一種 express + mock 讓前后臺(tái)并行開(kāi)發(fā)。

前后需要先商量好數(shù)據(jù)格式,等等一系列細(xì)節(jié)問(wèn)題,先不多說(shuō)直接上代碼

app.js

'use strict';

const express = require('express');
const app = express();

// port
let NODE_PORT = process.env.PORT || 4000;
// 監(jiān)聽(tīng) /user
app.use('/user', function(req, res) {
 // 讓接口 500-1000ms 返回 好讓頁(yè)面有個(gè)loading
 setTimeout(() => {
 res.json({
  status: 1,
  msg: '查詢成功',
  data: {
   name: '張三'
  }
 });
 }, Math.random() * 500 + 500);
});

app.listen(NODE_PORT, function() {
 console.log('mock服務(wù)在' + NODE_PORT + '端口上已啟用!');
});

接下來(lái)我們當(dāng)前文件打開(kāi)命令窗口運(yùn)行 node app.js

然后打開(kāi)瀏覽器 輸入 http://localhost:4000/user

就完成了一個(gè)簡(jiǎn)單的模擬數(shù)據(jù),接下來(lái)我們完善下需求

如果我們?cè)诒镜亻_(kāi)發(fā)中有時(shí)候 端口不同會(huì)報(bào)跨域問(wèn)題,所以我們需要在 app.js 添加一下代碼

const cors = require('cors');
app.use(cors({
 origin: '*',
 methods: ['GET', 'POST', 'PUT', 'DELETE'],
 allowedHeaders: ['conten-Type', 'Authorization']
}));

這樣就可以在別的端口訪問(wèn)或者別的ip內(nèi)網(wǎng)(你同時(shí))訪問(wèn)了。

如果我們需要訪問(wèn)一些靜態(tài)文件的可以添加一下代碼

// './' 根據(jù)自己的需求自己配置
app.use(express.static(path.join(__dirname, './')));

// 配置nodeman熱更新

var nodemon = require('nodemon');
nodemon({
 script: 'app.js',
 ext: 'json js',
 ignore: [
  '.git',
  'node_modules/**'
 ],
});

接下來(lái)繼續(xù)完善, 在開(kāi)發(fā)中我們不可能只有一個(gè)接口,所以我們?cè)趦?yōu)化下。

app.js
'use strict';

const express = require('express');
const cors = require('cors');
const path = require('path');
var nodemon = require('nodemon');
const userRoutes = require('./user');
const areaRoutes = require('./area');
const nameListRoutes = require('./name-list');
const app = express();

app.use(cors({
 origin: '*',
 methods: ['GET', 'POST', 'PUT', 'DELETE'],
 allowedHeaders: ['conten-Type', 'Authorization']
}));

// port
let NODE_PORT = process.env.PORT || 4000;
app.use(express.static(path.join(__dirname, './')));

app.use('/user', userRoutes);
app.use('/area', areaRoutes);
app.use('/nameList', nameListRoutes);

nodemon({
 script: 'app.js',
 ext: 'json js',
 ignore: [
  '.git',
  'node_modules/**'
 ],
});

app.listen(NODE_PORT, function() {
 console.log('mock服務(wù)在' + NODE_PORT + '端口上已啟用!');
});

我們需要在同級(jí)目錄添加以下文件
./user/index.js , /user/area.js, /name-list/index.js

./user/index.js 中的內(nèi)容如下

'use strict';
const express = require('express');
const Mock = require('mockjs');
const apiRoutes = express.Router();

let random = Math.random() * 500 + 500;
// 訪問(wèn) /user/ 時(shí)
apiRoutes.get('/', function(req, res) {
 setTimeout(() => {
  res.json({
   status: 1,
   msg: '查詢成功',
   data: {
     name: '張三'
   }
  });
 }, random);
});
// 訪問(wèn) /user/1111 時(shí)
apiRoutes.get('/idList', function(req, res) {
 setTimeout(() => {
  res.json({
   status: 1,
   msg: 'OK',
   data: Mock.mock({
      'list|1-10': [{
       'id|+1': 1
      }]
    })
  });
 }, random);
});

module.exports = apiRoutes;

我們現(xiàn)在在瀏覽器中訪問(wèn)

我們初步模擬數(shù)據(jù)基本就完成了。

接下需要在項(xiàng)目中用了

先區(qū)分環(huán)境

// 判斷是否是本地開(kāi)發(fā)
const isDev = process.env.NODE_ENV ==='development';
// 設(shè)置 host 本地走mock 生產(chǎn)環(huán)境走相對(duì)路徑 /user/
const host = isDev ? 'http://localhost:4000' : ''

fetch(`${host}/user/`)
 .then(response => {
  return response.json();
 })
 .then(data => {
  console.log(data );
 });

假設(shè)我們?cè)诒镜卦L問(wèn)

數(shù)據(jù)都能拿到了, 在試一下 別的域名訪問(wèn)

跨域問(wèn)題也OK。

我們?cè)谠O(shè)置下 package.json 在你本地開(kāi)發(fā)的命令后臺(tái)添加 && node xx/aap.js 或者單獨(dú)一個(gè)命令窗口運(yùn)行

好了介紹到此。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Node.js實(shí)現(xiàn)一個(gè)多人游戲服務(wù)器引擎

    使用Node.js實(shí)現(xiàn)一個(gè)多人游戲服務(wù)器引擎

    這篇文章主要給大家介紹了關(guān)于如何使用Node.js實(shí)現(xiàn)一個(gè)多人游戲服務(wù)器引擎的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Node.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Node使用koa2實(shí)現(xiàn)一個(gè)簡(jiǎn)單JWT鑒權(quán)的方法

    Node使用koa2實(shí)現(xiàn)一個(gè)簡(jiǎn)單JWT鑒權(quán)的方法

    這篇文章主要介紹了Node使用koa2實(shí)現(xiàn)一個(gè)簡(jiǎn)單JWT鑒權(quán)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 三分鐘教你用Node做一個(gè)微信哄女友神器(面向小白)

    三分鐘教你用Node做一個(gè)微信哄女友神器(面向小白)

    這篇文章主要介紹了三步教你用Node做一個(gè)微信哄女友神器(面向小白),用node和wechaty微信網(wǎng)頁(yè)接口開(kāi)發(fā)的一款小工具,可以定時(shí)給女朋友發(fā)每天的天氣情況,天氣提醒,每日一句,通過(guò)配置機(jī)器人api后還可以實(shí)現(xiàn)微信機(jī)器人自動(dòng)陪女朋友聊天,需要的朋友可以參考下
    2019-06-06
  • 解析NodeJS異步I/O的實(shí)現(xiàn)

    解析NodeJS異步I/O的實(shí)現(xiàn)

    本篇文章主要介紹了解析NodeJS異步I/O的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • node實(shí)現(xiàn)將json轉(zhuǎn)為excel

    node實(shí)現(xiàn)將json轉(zhuǎn)為excel

    平時(shí)我們寫代碼處理的數(shù)據(jù)格式一般都是json格式的數(shù)據(jù),但有時(shí)候我們也需要將數(shù)據(jù)轉(zhuǎn)為excel格式進(jìn)行保存或分享,所以下面我們就來(lái)學(xué)習(xí)一下如何通過(guò)node實(shí)現(xiàn)json轉(zhuǎn)excel吧
    2024-11-11
  • node.js實(shí)現(xiàn)復(fù)制文本到剪切板的功能

    node.js實(shí)現(xiàn)復(fù)制文本到剪切板的功能

    這篇文章主要給大家介紹了node.js實(shí)現(xiàn)復(fù)制文本到剪切板的功能,文中介紹的非常詳細(xì),并給出示例代碼,相信對(duì)大家具有一定的參考借鑒價(jià)值,有需要的朋友們下面來(lái)一起看看吧。
    2017-01-01
  • node.js實(shí)現(xiàn)的裝飾者模式示例

    node.js實(shí)現(xiàn)的裝飾者模式示例

    這篇文章主要介紹了node.js實(shí)現(xiàn)的裝飾者模式,簡(jiǎn)單說(shuō)明了裝飾者模式的原理、功能并結(jié)合實(shí)例形式給出了node.js裝飾者模式的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2017-09-09
  • nodejs讀取本地mp3和mp4等媒體文件并播放的案例

    nodejs讀取本地mp3和mp4等媒體文件并播放的案例

    fs模塊是nodejs官方提供用來(lái)操作文件的模塊,下面這篇文章主要給大家介紹了關(guān)于nodejs讀取本地mp3和mp4等媒體文件并播放的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • nodejs實(shí)現(xiàn)黑名單中間件設(shè)計(jì)

    nodejs實(shí)現(xiàn)黑名單中間件設(shè)計(jì)

    最近寫的項(xiàng)目中涉及到防止灌水的功能,于是設(shè)計(jì)了黑名單中間件,跟大家分享一下,同時(shí)也希望大家有好的建議能夠拍磚.
    2014-06-06
  • 詳解使用Visual Studio Code對(duì)Node.js進(jìn)行斷點(diǎn)調(diào)試

    詳解使用Visual Studio Code對(duì)Node.js進(jìn)行斷點(diǎn)調(diào)試

    這篇文章主要介紹了詳解使用Visual Studio Code對(duì)Node.js進(jìn)行斷點(diǎn)調(diào)試,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09

最新評(píng)論

孝昌县| 嘉定区| 南澳县| 永城市| 靖远县| 瓦房店市| 柞水县| 仙居县| 昆明市| 芷江| 科技| 杭锦旗| 常山县| 河曲县| 吉木萨尔县| 法库县| 淮滨县| 油尖旺区| 邓州市| 交城县| 芜湖县| 南靖县| 西峡县| 余江县| 大英县| 镇远县| 望谟县| 屏东市| 内丘县| 海伦市| 衢州市| 霍城县| 离岛区| 抚州市| 鄂尔多斯市| 寻乌县| 顺平县| 南皮县| 蒙城县| 嘉善县| 庆城县|