node是什么?(node中文官网)
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。(其他的可以看官网解说)
安装node
这里不做多讲了
编写第一个node程序
下面代码为node1.js
//node1.js
//在终端或者cmd中cd到当前目录 然后实行命令:node node.js
const str = 'Hello Node.js';
console.log(str);
然后便能在终端中看到打印了Hello Node.js
node进行进行文件操作
我们知道javascript是没有文件操作的功能的,但是node.js有文件操作能力。所以,小项目的时候node可以作为后端语言。在前端行走很多时候都有往全栈方向发展的,那么node对我们来说就是一个很好学到后端语言了。
在 Node 中如果想要进行文件操作,就必须引入 fs 这个核心模块,fs 是 file-system 的简写,就是文件系统的意思。
node读取文件readFile
下面代码为node2.js文件
//在终端或者cmd输入命令 node node2.js
注意:jsonData.json是我自己写的一个数据,你们也可以自己写一个测试。
// 1. 使用 require 方法加载 fs 核心模块
var fs = require('fs')
// 2. 读取文件 fs.readFile(path,callBack)
// 第一个参数就是要读取的文件路径:path
// 第二个参数是一个回调函数:callBack
// 成功
// data 数据
// err
or null
// 失败
// data undefined没有数据
// error 错误对象
fs.readFile('./jsonData.json',function(error,data){
// 文件中存储的其实都是二进制数据 0 1
// 这里为什么看到的不是 0 和 1 呢?原因是二进制转为 16 进制了
// 但是无论是二进制01还是16进制,人类都不认识
// 所以我们可以通过 toString 方法把其转为我们能认识的字符
if(error){
return console.log(error);
}
console.log(data.toString());
});
node 写入数据writeFile
作为后端语言,那么肯定是需要对数据库进行操作的,但是有时候如果只是一些小的数据存储的话还用不到数据库的设计,比如便签,记录用户访问等等。我们可以用node对json文件做数据存储(下面干货)
jsonData.js
{
"data":[
{
"id":1,
"name":"Jun"
}
]
}
node3.js
//fs.writeFile(path,content,callBack)
// 第一个参数:文件路径(path)
// 第二个参数:文件内容(content)
// 第三个参数:回调函数(callBack)
// 成功:
// 文件写入成功
// error 是 null
// 失败:
// 文件写入失败
// error 就是错误对象
var fs = require('fs');
var params = {
"id":2,
"name":"Tony"
}
//写入json文件选项
function writeJson(params){
//现将json文件读出来
fs.readFile('./jsonData.json',function(err,data){
if(err){
return console.error('读取文件失败:' + err);
}
else{
var person = data.toString();//将二进制的数据转换为字符串
person = JSON.parse(person);//将字符串转换为json对象
person.data.push(params);//将传来的对象push进数组对象中
person.total = person.data.length;//定义一下总条数,为以后的分页打基础
console.log('数据长度:' + person.total);
// console.log(person.data);
var str = JSON.stringify(person);
// 写入核心模块
fs.writeFile('./jsonData.json',str,function(err){
if(err){
console.error('写入失败:'+err);
}
else{
console.log('----------写入成功-------------');
}
})
}
})
}
writeJson(params)//执行一下;