用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工具,方便快捷!!!

相关文章

kindeditor4.x代码高亮功能默认使用的是prettify插件,prett...
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代...
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小