前置条件:

1. 本地有安装node,点击传送门

项目目录:

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次,插入了两条相同的数据。这个小坑之后再填】

【基础篇】

js对本地文件增删改查--增

js对本地文件增删改查--删

js对本地文件增删改查--改

js对本地文件增删改查--查

【参考资料】

前人栽树后人乘凉,敬编程界的先行者!

https://www.cnblogs.com/eliteboy/p/13272030.html

【基础篇】js对本地文件增删改查--增的更多相关文章

  1. hibernate关联对象的增删改查------增

    本文可作为,北京尚学堂马士兵hibernate课程的学习笔记. 这一节,我们看看hibernate关联关系的增删改查 就关联关系而已,咱们在上一节已经提了很多了,一对多,多对一,单向,双向... 其实 ...

  2. Sqlserver 增删改查----增

    注意我说的常见查询,可不是简单到一个表得增删改查,做过实际开发得人都知道,在实际开发中,真正牵扯到一个表得增删改查只能说占很小得一部分,大多都是好几个表的关联操作的. 下面我就说一下我在实际开发中经常 ...

  3. Ajax增删改查-----------增

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. php 数据库内容增删改查----增

    首先,建立一个主页面(crud.php) <!DOCTYPE html> <html lang="en"> <head> <meta ch ...

  5. 【基础篇】js对本地文件增删改查

    [基础篇] js对本地文件增删改查--增 js对本地文件增删改查--删 js对本地文件增删改查--改 js对本地文件增删改查--查

  6. 【基础篇】js对本地文件增删改查--查

    前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...

  7. 【基础篇】js对本地文件增删改查--改

    前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...

  8. 【基础篇】js对本地文件增删改查--删

    前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...

  9. MongoDB学习笔记,基础+增删改查+索引+聚合...

    一 基础了解 对应关系 -> https://docs.mongodb.com/manual/reference/sql-comparison/ database -> database ...

随机推荐

  1. java(基于springboot项目或maven项目均可) 操作mongodb

    一.引入mongodb 坐标依赖<dependency> <groupId>org.mongodb</groupId> <artifactId>mong ...

  2. Java的八大基本数据类型

    Java的八大基本数据类型 前言 Bit是计算机存储数据的基本单元,bit叫做位,也被称作比特位. Byte意为字节,1Byte=1字节,一字节可以存储八个二进制位的数字, 即为1Byte=8bit. ...

  3. memcached 小记

    Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串.对象).这些数据可以是数据库调用.API ...

  4. TreeMap相关

    Map接口 Map集合的特点 1.能够存储唯一的列的数据(唯一,不可重复) Set 2.能够存储可以重复的数据(可重复) List 3.值的顺序取决于键的顺序 4.键和值都是可以存储null元素的 T ...

  5. db2服务器linux的cache过高原因

    在线上db2数据库服务器,使用的linux操作系统(RHEL,centos),当db2数据库运行一段时间之后,操作系统的物理内存就趋近于0,同时系统的cache暴增,但是use却不高,下面是正常使用 ...

  6. Jupyter Notebook 更改字体、字体大小、行高

    (废话):今天在做实验的时候遇到了一点问题,就问了问本科的室友,结果室友推荐我使用Jupyter Notebook来写代码,以前看其他同学使用过,但是一直在用Pycharm写,需要的时候顶多是Debu ...

  7. 运用Spring Aop,一个注解实现日志记录

    运用Spring Aop,一个注解实现日志记录 1. 介绍 我们都知道Spring框架的两大特性分别是 IOC (控制反转)和 AOP (面向切面),这个是每一个Spring学习视频里面一开始都会提到 ...

  8. MySQL读写问题(锁)

    一.概述 读-读:并发不存在问题,不需要加锁 写-写:并发存在问题,可能会造成脏写(一个事务没有写完,另一个事务也对相同的数据进行写),但是这种情况,任何一种隔离级别都不允许发生,在隔离级别的时候就解 ...

  9. react之withRouter的作用

    withRouter的作用:把不是通过路由切换过来的组件,将react-router的history.location和match三个对象传入到props对象上: 默认情况下必须是经过路由匹配渲染的组 ...

  10. 10分钟了解代码命名规范(Java、Python)

    前言 关于代码命名,我相信是经常困扰很多小伙伴的一个问题,尤其是对于强迫症晚期患者.怎么说呢,每次小编在写代码之前,总会在想啊想啊,用什么命名法好呢?对于经常在C++.Java.Python等主流语言 ...