Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

this is a nodejs project for making datas with mockjs,at same time ,the code will be uploaded to a server.

Notifications You must be signed in to change notification settings

LicaiMaker/mock-server

Repository files navigation

[TOC]

这个项目是为了前后端分离开发,使用mock+nodejs编写的模拟后端数据的服务,同时添加了同步上传到服务器上的功能 github地址:mock-server

目录简介

目录结构

  • mock 里面存放的都是接口文件/文件夹(里面的接口数据都是用mock模拟的)
  • node_modules使用的是npm安装的依赖库
  • mock-gaze.js 用于监听文件的变化并上传到服务器(使用gaze+scp2实现)(已废弃)
  • mock-gaze2.js 用于监听文件的变化并上传到服务器(使用chokidar+scp2实现)
  • mock-server.js 核心文件,使用express实现,该文件中会搜索mock中的所有接口文件
  • mock-start.js使用nodemon模块,在项目修改代码后,自动重启

使用

第一种情况:在本地启动接口

如果只在本地使用,则直接执行:

node mock-start.js

然后就可在浏览器中通过localhost:8090/api1来访问接口了

并且可以实时修改代码,自动重启

第二种情况:本地监听,并且上传到服务器,并且在远端服务器启动该接口服务

如果想要在远程服务器上使用

  • 首先修改mock-gaze2.js中服务器的配置
// mock-gaze2.js
...
var client = require('scp2')
let log = console.log.bind(console)
...
function uploadFile(localPath,remotePath){
	// 这里的地址自行更改成自己的服务器
	client.scp(localPath, 'username:password@ip_address:'+remotePath, function(err) {
		log(`${localPath} 上传成功..`) 
})
}
  • 启动监听

    进入到mock-server目录:

node mock-gaze2.js

这里监听的目录上当前目录(除node_modules文件夹,可在mock-gaze2.js中配置),所以node_modules的变化不会被监听,并且也不会上传到远端服务器

然后就能监听到该目录下的所有变化了,然后变化的部分会被上传到远端服务器了

  • 在远端启动接口服务

    虽然现在上传到了远端服务器,但是我们要的效果是,本地修改,同步到远端服务器,然后通过ip或域名可以访问远端的接口,所以需要在服务器上启动接口服务(即:在服务器上执行node mock-start.js )

    但是呢,现在没有上传node_modules文件夹,故需要在服务器上安装一下依赖库

    进入到mock-server目录:

    npm install 
    

    然后:

    在服务器上启动mock-start.js

    node mock-start.js

    这样就能在本地修改,并同步到远端了

tip: 如果需要接口服务持久的运行在服务器上呢,可以使用forever库来启动mock-start.js:

npm install forever
forever start mock-start.js

附录

mock接口文件编写规范:

mock目录下创建api.js

mock/api.js:

const Mock=require('mockjs')
// 下面使用mockjs的语法
let getApi1Data=(req)=>{
 return Mock.mock({
 "list|2-5":[{
 	"name|1":"@name()",
 	"id|+1":1,
 	"isMale|1":true 
 }]
 }) 
} 
 
module.exports={
 // 固定格式 [`方法 url`](req,res){res.status(200).json(mock方法名(req))}
 [`GET /api`](req,res){
 	res.status(200).json(getApi1Data(req))
 }
}

mock语法:https://github.com/nuysoft/Mock/wiki

当然可以支持多文件夹,在mock目录下可以使用多个文件夹来存放接口文件,以达到模块化的需求

About

this is a nodejs project for making datas with mockjs,at same time ,the code will be uploaded to a server.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /