用NodeJs来mock web Api接口

俺的博客都来自工作,因此大部分也是围绕找工作需要展开。虽然前段时间的目标是Go lang,但是工作中一定要考虑下效率,因此,mock Api的事情暂时先用nodejs搞定吧,这个比较熟!

1、环境

nodejs安装可以参考上一博客。

node -v
npm -v

返回既定版本号,就说明安装已经成功了。

2、建立web服务

mkdir myapp
cd myapp
npm init # 一路回车

安装Express

npm install express --save

先写个简单的web服务

const express = require('express')
const app = express();
const port = 3000;
app.get('/',(req,res) => res.send('mock api'));
app.listen(port,()=> console.log(`api listening on port ${port}`));

就是这么简单~~~

3、开始mock

因为有个地方需要处理时间,因此增加moment包

npm install moment --save-dev

代码如下

// 增加access_token 接口mock
app.post('/access_token',res) => {
  res.charset = 'utf-8';
  res.set('Content-Type', 'application/json');  
  req = req || {};
  req.client_id  = req.client_id || '';
  req.client_secret  = req.client_secret || '';
  req.username  = req.username || '';
  req.password  = req.password || '';
  req.timestamp  = req.timestamp || '';
  req.sign  = req.sign || '';
  req.scope  = req.scope || '';
  
  if(req.client_id.trim() == '' ||
     req.client_secret.trim() == '' ||
     req.username.trim() == '' ||
     req.password.trim() == '' ||
     req.sign.trim() == ''  ){
     res.send({
          success: false,
          resultMessage:'参数有误',
          result:{            
          },
          resultCode:1001
        });
      return;
     }
  
  
  var curr = Date.now();
  var mm = moment(curr);
  var mm2= moment(curr).add(1,'day');
  
  res.send({
    success: true,
    resultMessage:'',
    result:{
      access_token:'1234567890',
      time: mm.format('YYYY-MM-DD HH:mm:SS'),
      expire_in : mm2.format('YYYY-MM-DD HH:mm:SS')
    },
    resultCode:null
  });
});

// 再mock一个push order接口
app.post('/sendDeliveryStatus', 'application/json'); 
  req = req || {};
  req.token  = req.token || '';
  req.parameters  = req.parameters || {};  
  
  if(req.token.trim() != '1234567890' ){
     res.send({
          success: false,
          resultMessage:'auth invalid',
          resultCode:5001
        });
      return;
     }
  
  res.send({
    success: true,
    result:{      
    },
    resultCode:null
  });
});

顺便说下,moment类真心好用,处理时间全靠它了!!!

4、执行和测试

node index.js

执行后看到api listening on port 3000,直接访问看到mock api,就一切ok,如果直接访问什么也看不到,请检查下liunx服务器上的防火墙设置,开启3000端口即可。
测试推荐采用postman工具,方便快捷!!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)