npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mock-servicer

v1.3.0

Published

用于提供模拟数据的node服务器。

Downloads

89

Readme

mock-servicer - 用于提供模拟数据的node服务器。

Issues

使用的时候遇到任何问题或有好的建议,请点击进入issue

基于此项目开发的mock-manager是一个更简单的提供模拟数据的“新增”、“删除”、“更新”和“使用”于一体的项目,使用起来非常简单,推荐使用此项目哦~

如何使用?

npm install mock-servicer

安装好了以后,引入并启动即可:

const MockServicer = require('mock-servicer');

MockServicer({

  // 请求端口,可选,默认8080
  port: 8080,

  // 服务器根地址,可选,默认当前路径
  contentBase:'./',

  // mock数据缓存根地址,可选,默认当前路径
  mockBase:'./mock',

  // 404的提示界面,可选
  template404:function(list){
    // 返回当前路径下文件列表
    return template;
  },

  // 自定义处理,可选
  handler:function(options){

    return {
      code:"",// 响应码,可选,默认200
      data:"",// 数据,必输
      type:""// 数据类型,可选,默认application/json
    };

  },

  // 请求拦截,可选,默认全部同意
  intercept:function(options){
      // 如果返回false,服务器会拒绝这次请求
      return true|false;
  }

});

和服务器交互

服务器启动成功以后,我们就可以通过请求的方式和数据服务器进行数据交互了。

交互主要分为下列几种:

  • 新增或更新

也就是在仓库中新增或修改已经有的模拟数据

其中url用于指定模拟数据名称,method用于指定模拟数据请求方法,总之,url和method唯一确定了哪一方模拟数据(主要是考虑到实际项目的同一个url可能会使用不同的method实现不同的功能),下同。

$.ajax({
  url: 'http://127.0.0.1:8080/update?url=XXX&method=XXX',
  type: "POST",
  data: "需要保存的数据"
});
  • 删除

删除已经存在的模拟数据

$.ajax({
  url: 'http://127.0.0.1:8080/delete?url=XXX&method=XXX'
});
  • 查询

如果需要使用这份模拟数据,可以这样请求,返回的是mock运行后的结果而不是你新增的原始代码

$.ajax({
  url: 'http://127.0.0.1:8080/query?url=XXX&method=XXX'
});
  • Mock查询

查询类似,只是这里直接使用XXX指定请求的模拟数据文件名称

$.ajax({
  url: 'http://127.0.0.1:8080/mock?XXX'
});
  • 原始查询

有时候,我们可能希望开发一个平台来管理我们的模拟数据,这个方法就可以返回原始代码,方便我们在线维护(比如这个项目:mock-manager

$.ajax({
  url: 'http://127.0.0.1:8080/oralquery?url=XXX&method=XXX'
});
  • 自定义处理

对于一些特殊情况,我们无法考虑那么多,比如访问权限等,这时候就可以自定义处理规则了

$.ajax({
  url: 'http://127.0.0.1:8080/handler'
});

当前,这意味着启动服务器时handler配置项是必须的。

上面的需要保存的数据可以是一个普通的JSON字符串,比如:

data: `{
  "key1": "value1",
  "key2": "value2",
  "key3": "value3"
}`

或者使用mock,比如:

data: `Mock.mock({
// 属性 list 的值是一个数组,其中含有 1 到 10 个元素
  'list|1-10': [{
    // 属性 id 是一个自增数,起始值为 1,每次增 1
    'id|+1': 1
  }]
})`

作为普通的数据服务器

除了上面特殊情况的交互外,你还可以直接访问位于服务器根地址 contentBase下的文件。

命令行启动

除了作为一个node包使用外,还可以在安装以后使用命令行启动:

mock-servicer --config ./mock-servicer.config.js

需要指定一个配置文件用来规定如何启动,配置文件格式如下:

// mock-servicer.config.js
module.exports = {

  port: 8080,
  // 和直接作为包使用的时候可配置参数的一致的

};

开源协议

MIT

Copyright (c) 2021-2022 hai2007 走一步,再走一步。