node.js中那些我们不为人知的事...JSON类型转换(经典面试题)

153 阅读1分钟

一、前言

看着即将退休的联想笔记本,心中感慨万千.回想起他陪伴我的这么多年,回想起自己初学node.js中永远搞不懂的绝对路径.心中不免想起现在依旧能背起来的练习题.

二、经典练习题

对JSON类型的操作:

  1. 如图,根目录如下:

根目录png.png
2. 文件data.json的内容如下:

[{"name":"小王"},{"name":"小李"}]
  1. 文件yourfile.js是需要写代码去完成功能,node yourfile.js 以后,会在data.json中添加一条记录,{name:"吴彦祖"}
  2. 添加后的效果为:
[{"name":"小王"},{"name":"小李"},{"name":"吴彦祖"}]

此题目重点考核的就是,node.js中的绝对路径以及JSON类型的互相转换
分析:
1.读出这个文件,读出来是字符串格式的
2.JSON.parse (JSON字符串格式 )=>数组
3.数组.push()
4.重新写回去
5.转回字符串
6.覆盖写入
所以,代码如下 :

    //1. 引入fs和path
    const fs = require('fs')
    const path = require('path')
    //2. 获取data.json的路径
    let dataSrc = path.join( __dirname ,'dd','/data.json')
    //3. 读取文件
    let readFile = readFileSync(dataSrc,'utf-8')
    consle.log(readFile) //[{"name":"小王"},{"name":"小李"}] JSON类型
    //4. 将JSON类型的转换为js类型,添加元素,再变回字符串类型
    let res = JSON.parse(readFile)
    res.push({"name":"吴彦祖"})
    let reg = JSON.stringify(res)
    //5. 读取文件,覆盖写入
    fs.writeFileSync(dataSrc,reg)