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地址在局域網內訪問頁面

相關文章
相關標籤/搜索