模板字符串传递数组、对象

974 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

1、解决模板字符串中不能传递数组、对象这类数据

模板字符串中使用的是字符的类型,所以需要将数据使用JSON.parse(jsonstr)方法

2、实现这样的一个需求:需要记录每天更新的同一个数据。

思路:创建一个json数据文件,先读文件拿出数据,然后在添加新数据,最后在重新把新的数据写入到json文件中。

var fs = require('fs');
var num = 258
var now = new Date();
var dat = [now.getFullYear(), now.getMonth() + 1, now.getDate()].join("/");
var params = {
	"date": dat,
	"name": num
	
} //思路:先读数据,把在原有的数据上添加新数据,再把新数据写到json文件中
//写入json文件选项
function writeJson(params) {
	//现将json文件读出来
	fs.readFile('./input.json', function(err, data) {
		if (err) {
			return console.error(err);
		}
		var person = data.toString(); //将二进制的数据转换为字符串
		person = JSON.parse(person); //将字符串转换为json对象
		var last = person.data.length-1;
		if(person.data[last].date!=dat){
			person.data.push(params); //将传来的对象push进数组对象中
		}
		person.total = person.data.length; //定义一下总条数,为以后的分页打基础
		console.log(person.data);
		
		console.log(last)
		console.log(person.data[last])
		var str = JSON.stringify(person); //因为nodejs的写入文件只认识字符串或者二进制数,所以把json对象转换成字符串重新写入json文件中
		fs.writeFile('./input.json', str, function(err) {
			if (err) {
				console.error(err);
			}
			console.log('----------新增成功-------------');
		})
	})
}
writeJson(params) //执行一下;