用NodeJs来mock web Api接口

编程之家收集整理的这篇文章主要介绍了用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: @H_481_403@false,
          resultMessage:'参数有误',
          result:{            
          },
          resultCode:1001
        });
      return;
     }
  
  
  var curr = Date.now();
  var mm = moment(curr);
  var mm2= moment(curr).add(1,'day');
  
  res.send({
    success: @H_481_403@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: @H_481_403@false,
          resultMessage:'auth invalid',
          resultCode:5001
        });
      return;
     }
  
  res.send({
    success: @H_481_403@true,
    result:{      
    },
    resultCode:null
  });
});

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

4、执行和测试

node index.js

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

总结

以上是编程之家为你收集整理的用NodeJs来mock web Api接口全部内容,希望文章能够帮你解决用NodeJs来mock web Api接口所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢寻找一群志同道合、互帮互助的学习伙伴,可以点击下方链接加入:
编程之家官方1群:1065694478(已满)
编程之家官方2群:163560250(已满)
编程之家官方3群:312128206

相关文章

猜你在找的JavaScript相关文章

JavaScript 提供两种相等运算符:== 和 。 在日常开发中,通常推荐使用 ,那么这两者到底有什么区别呢? 简单说,它们的区别是相等运算符(==)比较两个值是否相等,严格相等运算符( )比较它
临时需要个定时截屏,监控一个软件的运行,网上的下载软件杂七杂八,不如直接撸一个吧,so easy!初始化项目npm init 初始化一个nodejs项目准备nodejs类库包 npm install --save screenshot-desktop npm install --save node-schedule npm install --save mo...
目录1、闭包定义(Closure)2、Go Lang中的闭包3、复习对比下Javascript的闭包4、结语引用链接1、闭包定义(Closure)来自wiki定义:彼得·兰丁在1964年将术语“闭包”定义为一种包含环境成分和控制成分的实体,用于在他的SECD机器上对表达式求值。 Joel Moses认为是Landin发明了“闭包”这一术语,用来指代某些其开放绑定(自由变量)已经由其语法环境完...
http://download.csdn.net/source/2804466前几年做的最有意义的一件翻译事情了,文档可以在百度文库上搜索。Canvas 2D API 规范 1.0 中文版闪亮登场,相信是您学习HTML5的canvas元素api的首选教材,里面有丰富的例子,并且均在IE9下成功测试。希望大家多多支持。下面是目录:摘要 21 介绍 21.1 术语: 22 C...
英文内容:http://code.google.com/intl/zh-CN/closure/library/中文内容:http://www.codeex.cn/blog/article.asp?id=33    
无头浏览器的安装,在国内可谓一波三折,因为伟大的樯的存在,你如果能按github上的步骤安装成功,算我输。服务器Centos 7下安装不可能安装为UI模式,要不你服务器的命令行岂不是白敲了。在此模式下,先建立本地repo。1、添加Rep源$ sudo touch /etc/yum.repos.d/google.repo使用vi打开文件,填充内容如下:[google]name=G...
这是一个头疼的事情,毕竟第二个显示器技术的应用也就这几年的事。弹出窗口的小事情多年前,被做烂的弹窗,逼得各大浏览器纷纷出手,直接block掉多次弹窗,避免疯狂弹窗对用户的一万点暴击!因此使用弹窗要小心,一不留神不见了!今天忽然有人问我,“老大,能否实现弹窗到第二个显示器?” “这有啥难得,分分钟帮你搞定?”“话说,打脸,不要太疼!”想象一下一个会议室中的用户配备了投影仪,他们通过HDMI电缆连接到该投影仪。我们经常不是将演示文稿镜像到远程端点,而是真正希望在投影仪上全屏显示幻灯片,而让笔.
首先新建一个HTML:(引入jq)<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-sca