用node.js啟動mock.js


Node.js

Node 是一個讓 JavaScript 運行在服務端的開發平台,它讓 JavaScript 成為與PHP、Python、Perl、Ruby 等服務端語言平起平坐的腳本語言。官網下載node.js

mock.js

官網

1.初始化npm項目

新建項目文件夾nodeServer,用git bash初始化,生成npm的package.json文件。

 

npm init -y

package.json一般記錄了項目的配置信息,包括名稱、版本、許可證等元數據,也會記錄所需的各種模塊,包括 執行依賴,和開發依賴,以及scripts字段。

2.安裝mockjs

進入nodeServer下,用node自帶的npm下載安裝mock,這時候

npm install mockjs

這時nodeServer下面會多出package-lock.json文件和node_modules文件夾,package.json中也會添加

  "dependencies": {
    "mockjs": "^1.1.0"
  }

3.安裝express

進入nodeServer下,通過npm包管理工具安裝express服務

npm install express --save--dev

這時package.json配置文件中dependencies下多出"mockjs": "^1.1.0"

server.js

進入nodeServer下,新建server.js

let express = require('express');    //引入express模塊
let Mock = require('mockjs');        //引入mock模塊

let app = express();                //實例化express

/**
 * 配置test.action路由
 * @param  {[type]} req  [客戶端發過來的請求所帶數據]
 * @param  {[type]} res  [服務端的相應對象,可使用res.send返回數據,res.json返回json數據,res.down返回下載文件]
 */
app.all('/test.action', function(req, res) {
    res.send('hello world');
});
/**
 * 監聽8090端口
 */
app.listen('8090');

進入nodeServer下,通過命令啟動

node server.js

瀏覽器訪問如下

使用mockjs返回格式化json數據,在server.js中添加如下

/*返回json字符串*/
app.all('/json.action', function(req, res) {
    /**
     * mockjs中屬性名‘|’符號后面的屬性為隨機屬性,數組對象后面的隨機屬性為隨機數組數量,正則表達式表示隨機規則,+1代表自增
     */
    res.json(Mock.mock({
        "status": 200,
        "data|1-9": [{
            "name|5-8": /[a-zA-Z]/,
            "id|+1": 1,
            "value|0-500": 20
        }]
    }));
});

/*為app添加中間件處理跨域請求*/
app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header('Access-Control-Allow-Headers', 'Content-Type');
    next();
});

如果返回的中文為亂碼注意server.js的文件編碼格式

參考:

https://www.cnblogs.com/timmer/p/6519092.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM