You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在浏览器中调用终端功能,实现向JSON文件写入新增数据?

核心限制说明

浏览器出于安全沙箱机制,不允许前端代码直接调用系统终端、也没有内置Node.js的fs文件操作模块,你当前的写入逻辑只能在Node.js服务端环境运行,无法直接放到浏览器中执行。

可选实现方案

方案1:浏览器本地临时存储(刷新不丢失,无需操作文件)

如果仅需要在当前用户的浏览器中持久保存待办数据,可使用浏览器内置的localStorage API实现:

let dataUse = []

// 读取数据逻辑:优先读本地存储,没有再请求JSON文件
getData = () => {
    const localTodo = localStorage.getItem('todoList')
    if (localTodo) {
        dataUse = JSON.parse(localTodo)
        return
    }
    const xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status ==200) {
            const myData = JSON.parse(this.responseText)
            dataUse.push.apply(dataUse, myData)
        }
    }
    xhttp.open("GET", "data.json", true);
    xhttp.send();
}

// 保存数据逻辑:写入本地存储
saveData = () => {
    dataUse.push(newData)
    localStorage.setItem('todoList', JSON.stringify(dataUse))
}

getData()

方案2:用户主动下载更新后的JSON文件

如果需要把更新后的数据导出为本地JSON文件,可通过浏览器下载能力触发用户主动保存,覆盖原有文件:

saveData = () => {
    dataUse.push(newData)
    const jsonData = JSON.stringify(dataUse, null, 2)
    // 创建Blob对象生成临时下载链接
    const blob = new Blob([jsonData], { type: 'application/json' })
    const tempUrl = URL.createObjectURL(blob)
    const downloadTag = document.createElement('a')
    downloadTag.href = tempUrl
    downloadTag.download = 'data.json'
    downloadTag.click()
    // 释放临时链接资源
    URL.revokeObjectURL(tempUrl)
}

方案3:自动更新服务端的JSON文件

如果需要让所有访问页面的用户都能看到更新后的待办数据,你需要搭建一个简单的后端服务,前端通过POST请求把新数据提交给后端,由后端服务执行fs写入逻辑更新服务器上的data.json文件。

内容的提问来源于stack exchange,提问作者FutureProgrammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:24:00