在html中写入Txt/Json文件

最近项目中需要一个小功能:存储地址和端口。想到用一个文件存这些信息,供其它地方调用。可事实是,利用前端来做这项事情本来就是吃力不讨好的。

下面总结下看到的几种方法:

  1. 所见的最多的,利用ActiveXObject。但最好不要相信这玩意,兼容性很差,用起来也不好用。不推荐但还是给个链接看看思路:https://zhidao.baidu.com/question/556599553.html
  2. 利用php,优点代码简单,缺点需要下载软件。详情见:https://zhidao.baidu.com/question/2073712882469122548.html
  3. 利用nodejs,正好最近也正在研究这东西,用来搭建小型后台服务还是很方便。
  4. 用插件FileSaver.js,可以用。
  5. 弹出下载框,比较傻瓜式。但有时最笨的方法也是解决当下问题最有效的办法啊~传送门:https://blog.youkuaiyun.com/Lambert0320/article/details/98728489
### 使用 Express.jsJSON 数据写入 JSON 文件 为了实现通过 Express.js 接收 JSON 数据并将这些数据写入 JSON 文件的功能,可以按照如下方式进行设置: #### 创建服务器并配置 POST 请求处理程序 首先安装必要的依赖包 `express` 和 `body-parser` 来解析请求体中的 JSON 数据。 ```bash npm install express body-parser ``` 接着初始化一个简单的 Express 应用,在应用中监听特定路径上的 POST 请求,并在此处处理接收到的数据。 ```javascript const express = require('express'); const bodyParser = require('body-parser'); const fs = require('fs'); const path = require('path'); // 初始化应用程序实例 const app = express(); app.use(bodyParser.json()); // 解析 application/json 类型的内容 // 设置静态资源目录以便访问 HTML 页面或其他前端文件 app.use(express.static(path.join(__dirname, 'public'))); // 定义路由来接收来自客户端发送过来的新条目 app.post('/addEntry', (req, res) => { try { const entryData = req.body; // 获取目标 JSON 文件的位置 let filePath = path.join(__dirname, 'data.json'); // 读取现有内容 fs.readFile(filePath, 'utf8', (readErr, fileContent) => { if (readErr && readErr.code === "ENOENT") { // 如果文件不存在,则创建一个新的空数组作为初始状态 writeNewOrUpdatedFile([]); } else if (!readErr){ let parsedData; try{ parsedData = JSON.parse(fileContent); } catch(parseError){ return res.status(500).send({ message: "Failed to parse existing data." }); } // 向已有数据追加新的条目 parsedData.push(entryData); writeNewOrUpdatedFile(parsedData); } else { return res.status(500).send({ message: "An error occurred while reading the file." }); } function writeNewOrUpdatedFile(updatedArray){ // 更新后的整个数据集转换成字符串形式准备写回磁盘 const updatedJsonString = JSON.stringify(updatedArray, null, 2); // 执行实际的写操作 fs.writeFile(filePath, updatedJsonString, 'utf8', (writeErr) => { if(writeErr){ return res.status(500).send({ message: "Writing failed.", details: writeErr.message }); } // 成功反馈给调用者 res.send({ success: true, message: "Successfully added new entry!" }); }); } }); } catch(error){ res.status(500).send({ message: "Unexpected server-side issue", details: error.message }); } }); // 开始监听指定端口等待连接到来 const PORT = process.env.PORT || 3000; app.listen(PORT, () => console.log(`Server running on port ${PORT}`)); ``` 这段代码展示了如何利用 Node.js 的内置模块 `fs` 进行文件系统的交互以及怎样借助于 Express 框架构建 RESTful API。当有 HTTP POST 请求到达 `/addEntry` 路径时,服务端会尝试获取请求载荷里的 JSON 对象,将其附加到本地存储的一个名为 `data.json` 的文件里去[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值