node.js 简单使用

cmd 命令符

dir 列出当前文件下的所有文件
cd 进入指定目录
md 创建一个文件夹
rd 删除文件夹
e: 进入到 E盘
js文件请求
  node 文件名.js

配置环境

1.打开我的电脑,点击属性→高级系统设置→环境变量→path→编辑 
2.把文件地址粘贴到path里面路径已;结尾
3.当我们在命令行窗口打开一个文件或调用一个程序时,系统会首先在当前目录下寻找文件程序,如果找到则直接打开,如果没有则会依次到环境变量path的路径中寻找

 

PHPstorm 安装node.js

1.打开设置 搜索node
2.然后添加node.js路径

 

模块化

在node中,一个文件就是一个模块
在node中,每一个js文件中的js代码都是独立运行在一个函数中的,不是全局作用域,所以一个模块中的变量和函数在其他模块中无法访问,需要向外暴露变量和方法 exports 或 module.exports
只有向外暴露,其他引入的文件才可以看见

通过require()函数来引入外包模块,引入一个模块后,会返回一个对象,代表引入模块 require(" 路径")

npm命令

npm -v 查看版本
npm search 包名            搜索包
npm init                   创建package.json文件
npm install 包名           下载包
npm remove  包名           删除包
npm install 包名 --save    安装并添加依赖
npm install                下载当前项目依赖的包
npm install baom -g        全局安装包

淘宝npm 镜像

npm install -g cnpm --registry=https://registry.npm.taobao.org

 

node搜索包流程

通过npm下载的包直接通过包名引入即可
 var demo = require("math");

在node使用模块名字来引入模块时,他会在当前目录的node_module 中寻找该模块,如果有则直接使用
,如果没有则会到上级node_module中寻找,直到找到为止,如果没有则报错!

同步文件写入

首先引入
  var fs = require("fs"); 
 1.打开文件
  var fd = fs.openSync(path, flags[, mode]);
   - path 文件路径
   - flages 文件操作类型
          - r 只读
          - w 只写
 2.向文件中写入内容
   fs.writeSync(fd, string[, position[, encoding]])
      -fd 文件的描述符 需要传递要写入的文件描述
      - string 要写入的内容
      -  position 要写入的位置
   
 3.关闭文件
    fs.closeSync(fd)
     -fd 关闭的文件描述符

var fd = fs.openSync("hello.txt", "w"); //当前文件路径下创建了一个hello.txt文件 可写状态
    fs.writeSync(fd, "你好啊");  //在fd 写入的内容
    fs.closeSync(fd);  //关闭文件   写入完内容记得关闭

   异步文件写入

var fs = require("fs");
fs.open("hello1.txt","w",function (err,fd) {
   if (!err){
       fs.write(fd,"hello good",function (err) {
           if (!err){
               console.log("ok")
           }
           fs.close(fd,function () {
               console.log("close")
           });
       })
   }  
});

简单文件写入

fs.writeFile(file, data[, options], callback)
fs.writeFileSync(file, data[, options])
  - pile 要操作的文件路径
  - data 要写入的数据
  - options 设置
  - callback 完成后的执行函数
  
flag
  -r 只读
  -w 只写
  -a 追加 

fs.writeFile("demo2", "hello  motou",{flag:"w"}, function (err) {
    if (!err){
        console.log("ok")
    } 
})

流式文件写入

fs.createWriteStream(path[, options])
  -path 文件路径
  - options 配置参数

var ws = fs.createWriteStream("demo3.txt");
ws.write("nihao");
ws.write("nihao");
ws.write("nihao");
ws.end();

简单文件读取

fs.readFile(path[, options], callback)
fs.readFileSync(path[, options])
   - path 要读取的文件路径
   - options 选项
   - callback 回调函数
     err 错误对象
     data 读取到的数据

fs.readFile("demo3.txt",function (err,data) {
    if (!err){
        console.log(data)//读取到得数据输出;
        fs.writeFile("demo1.txt", data,{flag:"w"}, function (err) { //像demo1.txt 写入data数据
            if (!err){
                console.log("ok")
            }
        })
    }

});

流式文件读取

流式文件读取适用于比较大的文件,可以分多次读取到内存中
如果要读取一个可读流中的数据,必须要为可读流绑定一个data事件,他会自动读取数据
var fs = require(“fs”);
var rs = fs.createReadStream("demo1.txt");
var ws = fs.createWriteStream("demo3.txt");
/*
   rs.on("data",function (data) {
        console.log(data.toString());
        ws.write(data); //
   
    })
*/

rs.pipe(ws); 可以将可读流中内容,直接输出到可写流中

fs模块的其他方法

//删除文件
fs.unlinkSync("demo2");
fs.unlink("demo1.txt");
//读取目录
fs.readdir(".",function (err,files) {  //读取当前目录下的目录结构
   //files  字符串数组
});
fs.readdirSync("")

//创建目录

fs.mkdir();
fs.mkdirSync();

//删除目录
fs.rmdir()
fs.rmdirSync()

fs.watchFile()
 //监视文件修改
/*
  - filename 要监视的文件名字
  - options 配置
  - listener 回调函数,当文件发生变化时,回调函数会执行
*/
fs.watchFile("demo1.txt",function (curr,prev) {
 /*
  - curr 当前文件的状态
  - prev 修改前文件的状态
 * */
 console.log(curr);
 console.log(prev)
});

猜你喜欢

转载自blog.csdn.net/Acitylion/article/details/89207188