一、什么是Node.js

​ js是脚本语言,脚本语言都是需要一个解析器才能运行。对于html页面里的js,浏览器充当了解析器的角色。而对于需要独立运行的js,node就是一个解析器。

​ 每一种解析器都是一个运行环境,不但允许js定义各种数据结构,进行各种计算,还允许js使用允许环境提供内置对象和方法做一些事情。例如运行在浏览器中的js的用途就是操作dom,浏览器提供了document之类的内置对象,而运行在node中的js的用途就是操作磁盘文件或者搭建http服务器,node就相应提供了fs、http等内置对象。

二、优势

  1. NodeJs语法完全是js语法,只需要懂js基础就可以学会Node后端开发
  2. Node打破了js只能在浏览器运行的局面,前后端编程环境统一,可以大大降低开发成本
  3. Node超强的高并发能力
  4. 实现高性能服务器
  5. 开发周期短、成本低

三、安装

你可以通过以下两种方式在 Mac OS 上来安装 node:

  1. 在官方下载网站下载 pkg 安装包,直接点击安装即可。
  2. 使用 brew 命令来安装:

    brew install node

四、如何运行

打开终端,输入node进入交互命令,可以输入一条代码语句后立即执行并显示结果,例如

console.log('hello world');

也可以将一个js文件拖入,也会运行。

QQ20200108-163805@2x

五、模块化

  1. 编写稍大一点的程序时一般都会讲代码模块化,在node中,一般讲代码合理的拆分到不同的js文件中,每个文件就是一个模块,而文件路径就是模块名。
  2. 自定义模块的步骤:创建一个模块、导出一个模块、引入一个模块并使用
  3. 实例:

创建一个模块代码如下:

function fun () {
    console.log('hello world');
};

导出一个模块代码如下:

module.exports = fun();

引入并使用一个模块的代码如下:

const hello = require('./hello.js');

console.log(hello);

六、基础fs模块

fs模块提供同步和异步方法

  1. 同步读取文件夹

同步读取的函数和异步函数相比,多了一个Sync后缀,并且不接收回调函数,函数直接返回结果
如果同步读取文件发生错误,则需要用try...catch捕获该错误

具体代码如下:

 try{
     //可能出错的代码
     let dirs = fs.readdirSync('./node');
 } catch (err) {
     console.log('出错了');
     console.log(err);
 }
  1. 异步读取文件夹
    // 错误的回调优先,在回调函数中第一个参数表示错误对象,默认为null,如果出现错误err,就是错误对象
    
    fs.readdir('./',(err,data)=> {
    if (err) {
     console.log('读取错误');
    } else {
     console.log(data);
    }
    });
  2. 创建文件夹
    fs.mkdir('./test',err=>{
    console.log(err);
    });
  3. 更改文件夹
    fs.rename('./test','./test01',err=>{
    if(err) {
     console.log('更改失败');
    }else{
     console.log('ok');
    }
    });
  4. 删除文件夹
    fs.rmdir('./test01',err=>{    //删除操作只能删除空的文件夹
    if (err) {
     console.log('删除失败');
    } else {
     console.log('删除成功');
    }
    })
Last modification:January 9th, 2020 at 09:45 am
来杯coffee吧