美文网首页
用nodejs写接口(mock)

用nodejs写接口(mock)

作者: 程序员之路 | 来源:发表于2017-09-20 12:01 被阅读0次

    本文实现用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)

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