美文网首页程序员Web前端之路
用nodejs写接口(mock)

用nodejs写接口(mock)

作者: 我不叫奇奇 | 来源:发表于2017-09-20 10:16 被阅读1753次

本文实现用nodejs搭建一个简单的服务端,用json文件模拟数据库,适合前端在模拟数据测试的时候使用

必备

  • node环境
  • express插件
  • body-parse 插件
  • fs插件

目录结构

文件内容

  • nodeService.js

  const express = require('express')
  const bodyParser = require('body-parser')
  const fs = require('fs')
  
  function readText (pathname) {
    var bin = fs.readFileSync(pathname)
  
    if (bin[0] === 0xEF && bin[1] === 0xBB && bin[2] === 0xBF) {
      bin = bin.slice(3)
    }
  
    return bin.toString('utf-8')
  }
  
  // 创建express实例
  const app = express()
  // 设置跨域访问
  app.all('*', function(req, res, next) {
    res.header('Access-Control-Allow-Origin', '*')
    res.header('Access-Control-Allow-Headers', 'X-Requested-With, accept, origin, content-type')
    res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE,OPTIONS')
    res.header('X-Powered-By', ' 3.2.1')
    res.header('Content-Type', 'application/json;charset=utf-8')
    next()
  })
  // 将请求体变成熟悉的键值对样子
  app.use(bodyParser.uselencoded({extended: false}))
  app.user(bodyParser.json())
  
  // 开始写接口
  // 例:接口为/client/任意参数, 就爱那个数据插入database的clients.json中
  app.route('/client/:id')
    .put((req, res) => {
    let options = req.body
    let id = req.params[0]
    let allClient = readText('./database/clients.json')
    let t = JSON.parse(allClient)
    for (let i in t) {
    if (JSON.parse(t[i]).id === id) {
      t[i] = JSON.stringify(options)
      fs.writeFileSync('./database/clients.json', JSON.stringify(t))
      let response = {
        msg: 'success',
        clients: t[i]
      }
      res.status(200)
      res.send(response)
      return
    }
  }
  res.status(500)
  res.send({msg: 'failed'})
  })
  
  // 开启服务器
  const server = app.listen(3000, function() {
    var host = server.address().address
    var port = server.address().port
    console.log('Example app listening at http://%s:%s', host, port)
  })
  • fileDetail.json

[]

运行方式

  在该目录下
  node nodeService.js

请求方式

$.ajax({
  url: 'localhost:3000/client/' + n //n为任意参数,服务端通过req.params.id获取
  type: 'put'
}).then((res) => { 
  console.log(res) 
}).catch((err) => {
  console.log(err)
})

相关文章

  • 用nodejs写接口(mock)

    本文实现用nodejs搭建一个简单的服务端,用json文件模拟数据库,适合前端在模拟数据测试的时候使用 必备 no...

  • 用nodejs写接口(mock)

    本文实现用nodejs搭建一个简单的服务端,用json文件模拟数据库,适合前端在模拟数据测试的时候使用 必备 no...

  • 前端mock环境搭建

    此方案用nodejs搭建了一个mock的server,并且可以不用单独定义每一个接口,分享给大家~ mock se...

  • nodejs实现mock数据

    实现mock的基本思路 搭建一个nodejs server(koa2,koa-router), 需要mock的接口...

  • 82.项目中使用mock

    1.引入mock 2.项目中新建mock目录,新建index.js3.定义接口和接口返回值,使用mock时用数据占...

  • Python+ Flask轻松实现Mock Server

    1、什么是Mock 模拟接口 接口Mock测试:在接口测试中,对于某些不容易构造或者不容易获取的接口,可以用一个模...

  • nodejs写接口

    express 用nodejs写接口,网上大部分是使用的express,所以我就扒拉扒拉网上的资料,写了一个,方便...

  • nodejs写接口

    在项目根目录下:“npm init” 初始化nodejs项目,生成package.json文件 npm insta...

  • nodejs+Koa2实际项目中遇见的问题

    记得刚开始用nodejs写接口服务时,那时候服务是基于nodejs+express+mysql搭建的,直到前段时间...

  • 接口测试Mock与HttpClient

    1.Mock框架 1.1mock介绍: mock可以模拟接口测试,通过运行mock框架的jar,快速搭建接口测试。...

网友评论

    本文标题:用nodejs写接口(mock)

    本文链接:https://www.haomeiwen.com/subject/gqvnsxtx.html