node笔记——json文件的写入

作的是一个小demo
大体内容以下:
1.Vue框架写的前端
2.axios调用接口
3.经过接口对json进行写入
4.可以在局域网内全部电脑进行访问前端

首先须要install一些东西
前端是node

npm install axios

后端安装express框架ios

npm install express --save
npm install body-parser --save
npm install cookie-parser --save
npm install multer --save

前端页面:express

write() {
      this.axios
        .get(`http:// 本身的ip地址 :8081/?name=${this.name}&score=${this.score}`)
        .then(res => {
          console.log("res --->", res);
        })
        .catch(err => {
          console.log("err --->", err);
        });
    }

内容比较简单,就写一个write方法
经过axios调用接口并传参
填本身的IP地址是由于要在局域网内访问,至关于本机是一个服务器,局域网内其余人填写的name和score都会到访问到本机的8081端口并写入本机的JSON文件npm


Api.jsjson

var fun = require('./fun')
var express = require('express');
var app = express();
var bodyParser = require('body-parser');

app.all("*", function (req, res, next) {
    //设置容许跨域的域名,*表明容许任意域名跨域
    res.header("Access-Control-Allow-Origin", "*");
    //容许的header类型
    res.header("Access-Control-Allow-Headers", "content-type");
    //跨域容许的请求方式 
    res.header("Access-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS");
    if (req.method.toLowerCase() == 'options')
        res.send(200);  //让options尝试请求快速结束
    else
        next();
})
// 建立 application/x-www-form-urlencoded 编码解析
var urlencodedParser = bodyParser.urlencoded({ extended: false })

app.use('/public', express.static('public'));

app.get('/', function (req, res) {
    fun.writeJson(req.query)
})

var server = app.listen(8081, function () {
    var host = server.address().address
    var port = server.address().port
    console.log("<----------  服务已启动  ---------->")
    console.log("<---------  服务端口:8081 --------->")
})

fun是另外一个提供JSON写入的函数,这个Api主要功能是设置跨域并调用接口,能够看到app.get调用了fun.writeJson方法axios


fun.js后端

var fs = require('fs');
//在真实的开发中id确定是随机生成的并且不会重复的,下一篇写如何生成随机切不会重复的随机数,如今就模拟一下假数据
//写入json文件选项
function writeJson(params) {
    //现将json文件读出来
    fs.readFile('../src/assets/score.json', function (err, data) {
        if (err) {
            return console.error(err);
        }
        var person = data.toString();//将二进制的数据转换为字符串
        person = JSON.parse(person);//将字符串转换为json对象
        person.data.push(params);//将传来的对象push进数组对象中
        person.total = person.data.length;//定义一下总条数,为之后的分页打基础
        var str = JSON.stringify(person);//由于nodejs的写入文件只认识字符串或者二进制数,因此把json对象转换成字符串从新写入json文件中
        fs.writeFile('../src/assets/score.json', str, function (err) {
            if (err) {
                console.error(err);
            }
            console.log('----------新增成功-------------');
        })
    })
}

module.exports = {
    writeJson
}

这就是写入JSON文件的方法跨域


想要在局域网内的电脑均可以访问的话
须要把node的服务起了,个人是数组

node Api.js

在前段须要修改一下Vue项目的config/index.js将host的localhost改成本身的IP地址而后npm run dev就能够经过访问IP地址在局域网内访问页面

相关文章
相关标签/搜索