【基础篇】js对本地文件增删改查--增
前置条件:
项目目录:

1. msg.json内容
{
"data": [
{
"id": 1,
"name": "aa"
},
{
"id": 2,
"name": "bb"
},
{
"id": 3,
"name": "cc"
},
{
"id": 4,
"name": "dd"
}
],
"total": 4
}
2. add.js
// 若找不到该模块,则用npm i fs命令安装一下即可
var fs = require('fs'); var params = {
"id":5,
"name":"ee"
}
//写入json文件选项
function addData(params){
//现将json文件读出来
fs.readFile('data/msg.json',function(err,data){
if(err){
return console.error(err);
}
var msg = data.toString(); //将二进制的数据转换为字符串
msg = JSON.parse(msg); //将字符串转换为json对象
msg.data.push(params); //将传来的对象push进数组对象中,此处用的模拟数据parms,以后从页面获取数据
msg.total = msg.data.length; //刷新一下总数,以后分页会用上
console.log(msg.data);
var str = JSON.stringify(msg); //因为nodejs的写入文件只认识字符串或者二进制数,因此进行必要的转换
fs.writeFile('./data/msg.json',str,function(err){
if(err){
console.error(err);
}
console.log('----------新增成功-------------');
})
})
} //执行新增数据方法;
addData(params)
3. 用node执行add.js,效果如下图:


可以发现,数据已插入。但是有个问题,数据变成一行了,这样可读性很差。我们需要在add.js中进行一点修改,如下
//因为nodejs的写入文件只认识字符串或者二进制数,因此进行必要的转换。另外,此种写法可以美化写入的json样式
var str = JSON.stringify(msg,"","\t");
重新执行app.js,可以发现,写入的json已经是我们期待的样子。

【因为此处并未做数据校验,因此执行了2次,插入了两条相同的数据。这个小坑之后再填】
【基础篇】
【参考资料】
前人栽树后人乘凉,敬编程界的先行者!
https://www.cnblogs.com/eliteboy/p/13272030.html
【基础篇】js对本地文件增删改查--增的更多相关文章
- hibernate关联对象的增删改查------增
本文可作为,北京尚学堂马士兵hibernate课程的学习笔记. 这一节,我们看看hibernate关联关系的增删改查 就关联关系而已,咱们在上一节已经提了很多了,一对多,多对一,单向,双向... 其实 ...
- Sqlserver 增删改查----增
注意我说的常见查询,可不是简单到一个表得增删改查,做过实际开发得人都知道,在实际开发中,真正牵扯到一个表得增删改查只能说占很小得一部分,大多都是好几个表的关联操作的. 下面我就说一下我在实际开发中经常 ...
- Ajax增删改查-----------增
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- php 数据库内容增删改查----增
首先,建立一个主页面(crud.php) <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- 【基础篇】js对本地文件增删改查
[基础篇] js对本地文件增删改查--增 js对本地文件增删改查--删 js对本地文件增删改查--改 js对本地文件增删改查--查
- 【基础篇】js对本地文件增删改查--查
前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...
- 【基础篇】js对本地文件增删改查--改
前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...
- 【基础篇】js对本地文件增删改查--删
前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...
- MongoDB学习笔记,基础+增删改查+索引+聚合...
一 基础了解 对应关系 -> https://docs.mongodb.com/manual/reference/sql-comparison/ database -> database ...
随机推荐
- 《剑指offer》面试题33. 二叉搜索树的后序遍历序列
问题描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果.如果是则返回 true,否则返回 false.假设输入的数组的任意两个数字都互不相同. 参考以下这颗二叉搜索树: 5 / \ ...
- 【刷题-LeetCode】221. Maximal Square
Maximal Square Given a 2D binary matrix filled with 0's and 1's, find the largest square containing ...
- List子接口
简介 特点: 有序, 有下标, 元素可以重复 常用方法 boolean add(E e) 将指定的元素追加到此列表的末尾(可选操作). void add(int index, E element) 将 ...
- NTT 快速数论变换
NTT 先学习FFT 由于FFT是使用复数运算,精度并不好,而且也无法取模,所以有了NTT(快速数论变换). 建议先完全理解FFT后再学习NTT. 原根 NTT使用与单位根性质相似的原根来代替单位根. ...
- java-异常-编译时检测异常和运行时异常区别(throws和throw区别)
1 package p1.exception; 2 /* 3 * 对于角标是整数不存在,可以用角标越界表示, 4 * 对于负数为角标的情况,准备用负数角标异常来表示. 5 * 6 * 负数角标这种异常 ...
- Stream流的基本介绍以及在工作中的常用操作(去重、排序以及数学运算等)
平时工作中,我在处理集合的时候,总是会用到各种流操作,但是往往在处理一些较为复杂的集合时,还是会出现无法灵活运用api的场景,这篇文章的目的,主要是为介绍一些工作中使用流时的常用操作,例如去重.排序和 ...
- python3调用js的库之execjs
执行JS的类库:execjs,PyV8,selenium,node execjs是一个比较好用且容易上手的类库(支持py2,与py3),支持 JS runtime. 1.安装: pip install ...
- CKKS Part2: CKKS的编码和解码
该文章翻译自CKKS EXPLAINED, PART 2: FULL ENCODING AND DECODING,主要介绍CKKS方案中是如何编码和解码的(如何将复数向量转成整数多项式,以及如何求逆运 ...
- shiro-springboot整合,平行依赖
最近在弄shiro,把shiro单独提出来,弄成一个子项目,这样可以降低项目的冗余,但是把shiro打成jar包后,另一个项目添加其依赖后,在IDE项目中正常的运行,打成jar包后运行,则不断的报错 ...
- JVM学习十 -(复习)内存分配与回收策略
内存分配与回收策略 对象的内存分配,就是在堆上分配(也可能经过 JIT 编译后被拆散为标量类型并间接在栈上分配),对象主要分配在新生代的 Eden 区上,少数情况下可能直接分配在老年代,分配规则不固定 ...