如何在js脚本

时间:2018-01-27 23:46:38

标签: javascript node.js

我有一个写入json文件的js脚本

"use strict";
var jsonfile = require('jsonfile');

var file = 'data.json';
var obj = {name: 'andrew'};

jsonfile.writeFile(file, obj, function (err) {
console.error(err)
})

问题是这个代码只有在node.js中执行时才有效,但是我想在浏览器中创建一个允许更改json文件内容的用户界面。 因此,例如,如果用户单击按钮,则浏览器告知节点服务器执行代码。我认为可能通过http请求,但我不知道如何做到这一点

1 个答案:

答案 0 :(得分:0)

是的,最好的方法可能是做一个http请求,因为你不希望用户直接将文件写入文件系统。

对于我来说,我会使用expressjs(有人在评论中给出了链接),这是构建Web应用程序的最简单方法。

定义一个路径(很可能是一个POST),它接收你想要写入文件的主体。如:

router.post('/write', postRequestHandler)

function postRequestHandler(req, res) {
    let contentToSave = req.body.jsonContent;

    jsonFile.writeFile(file, contentToSave, function (error) {
        if (error) {
            res.status(500).send(error)
        } else {
            res.status(201).end()
        }
    })
}

然后定义另一个返回json文件内容的路由(GET)。

然后,您可以拥有一个带有2个显示部分的简单UI,其中一个显示可编辑的数据和当前在json文件中的数据。然后只需要几个按钮,一个用内容调用POST(可以是“保存”按钮),另一个调用GET(“重新加载/检索”按钮)