当前位置 博文首页 > 向往的那片海洋:Node 快速入门(二)

    向往的那片海洋:Node 快速入门(二)

    作者:[db:作者] 时间:2021-08-20 21:44

    Node.js 的组成

    • JavaScript 由三部分组成,ECMAScript,DOM,BOM
    • Node.js 是由 ECMAScript 及 Node 环境提供的一些附加 API 组成的,包括文件、网络、路径等等一些更加强大的 API

    https://gitee.com/project_almanac/change/raw/master/JavaScript/WGRc6xXgKyes.png

    Node.js 基础语法

    所有 ECMAScript 语法在 Node 环境中都可以使用

    var first = 'hello nodejs';
    
    console.log(first);
    
    function fn(){
        console.log('fn 函数被调用了');
    }
    
    fn();
    
    
    for(var i=0;i<5;i++){
        console.log(i);
    }
    
    if(true){
        console.log('123');
    }
    

    输出:

    fn 函数被调用了
    0
    1
    2
    3
    4
    123
    

    Node.js 模块化开发

    JavaScript 开发弊端

    JavaScript 在使用时存在两大问题,文件依赖命名冲突

    https://gitee.com/project_almanac/change/raw/master/JavaScript/^2r26K5CmXwj.png

    软件中的模块化开发

    一个功能就是一个模块,多个模块可以组成完整应用,抽离一个模块不会影响其他功能的运行。

    https://gitee.com/project_almanac/change/raw/master/JavaScript/pnN^plk!EZ@d.png

    Node.js 中模块化开发规范

    • Node.js 规定一个 JavaScript 文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到
    • 模块内容可以使用 exports 对象进行成员导出,使用 require 方法导入其他模块。

    https://gitee.com/project_almanac/change/raw/master/JavaScript/UleZrsdn8HZt.png

    模块成员的导入导出

    模块成员的导出

    // a.js
    // 在模块内部定义变量
    let version = 1.0;
    // 在模块外部导出数据
    exports.version = version;
    exports.sayHi = sayHi;
    

    模块成员的导入

    // 模块成员的导入
    // 导入模块时后缀可以省略
    // b.js
    // 在 b.js 模块中导入模块
    let a = require('./b.js');
    // 输出 b 模块中的 version 变量
    console.log(a.version);
    // 调用 b 模块中的 sayHi 方法并输出其返回值
    console.log(a.sayHi('启嘉'));
    

    模块成员的导出的另一种形式

    module.exports.version = version;
    module.exports.version = sayHi;
    

    exportsmodule.exports 的别名(地址引用关系),导出对象最终以 module.exports 为准

    模块导出两种方式的联系与区别

    https://gitee.com/project_almanac/change/raw/master/JavaScript/xXe4NDwAhTOr.png

    系统模块

    什么是系统模块

    Node 运行环境提供的 API 因为这些 API 都是以模块化的方式进行开发的,所以我们又称 Node 运行环境提供的 API 为系统模块

    https://gitee.com/project_almanac/change/raw/master/JavaScript/3vuSkCK3V^Lz.png

    1. 文件操作( 系统模块 fs )
    // f: file 文件
    // s: system 系统
    // 文件操作系统
    
    // 导入模块
    const fs = require('fs')
    
    • 读取文件内容
    // [] 可选项   callback 回调函数
    fs.reaFile('文件路径/文件名称'[,'文件编码'],callback);
    
    // 1. 通过模块的名字 fs 对模块进行引用
    const fs = require('fs')
    
    // 读取文件语法示例
    
    // 2. 通过模块内部的 readFile 读取文件内容
    fs.readFile('./01_helloworld.js','utf-8' ,(err,doc) => {
        // 如果文件读取发生错误,包含错误信息 参数 err 的值为错误对象 否则 err 的值为 null
        // doc 参数为文件内容 - 读取的结果
        // 如果文件读取正确 err 是 null 
        if (err == null) {
            // 在控制台中输出文件内容
            console.log(doc);
            console.log(err);
        }
    });
    
    
    • 写入文件内容
    fs.writeFile('文件路径/文件名称','数据',callback);
    
    const fs = require('fs')
    
    const content = '<h3>正在使用 fs.weiteFile 写入文件内容</h3>';
    
    fs.writeFile('./demo.txt',content, err => {
        if (err != null ){
            console.log(err);
            return;
        }
        console.log('文件写入成功');
    });
    
    1. 路径操作( 系统模块 path )

    为什么要进行路径拼接:

    • 不同操作系统的路径分隔符不统一
    • /public/uploads/avatar
    • Windows 上是 \ /
    • Linux 上是 /

    语法示例:

    path.join('路径','路径',...)
    

    相对路径和绝对路径

    • 大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行工具的当前工作目录
    • 在读取文件或者设置文件路径时都会选择绝对路径
    • 使用 __dirname 获取当前文件所在的绝对路径

    第三方模块

    概念:别人写好的、具有特定功能的、我们能直接使用的模块

    由于第三方模块通常都是由多个文件组成并且被放置在一个文件夹中,所以又名包。

    存在形式:

    • 以 js 文件的形式存在,提供实现项目具体功能的 API 接口
    • 以命令行工具形式存在,辅助项目开发

    获取第三方模块

    第三方模块的存储和分发仓库:npmjs.com

    https://gitee.com/project_almanac/change/raw/master/JavaScript/tobph3^RH29S.png

    npm(node package manager):node 的第三方模块管理工具

    • 下载:npm install 模块名称
    • 卸载:npm uninstall package 模块名称

    全局安装与本地安装

    • 命令行工具:全局安装
    • 库文件:本地安装

    第三方模块 nodemon

    nodemon 是一个命令行工具,用以辅助项目开发
    在 Node.js 中,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐

    使用步骤:

    • 使用 npm install nodemon -g 下载它
    • 在命令行工具中用 nodemon 命令替代 node 命令执行文件

    第三方模块 nrm

    nrm(npm registry manager):npm 下载地址切换工具

    npm 默认的下载地址在国外,国内下载速度慢

    使用步骤:

    • 使用 npm install nrm -g 下载它
    • 查询可用下载地址列表 nrm ls
    • 切换 npm 下载地址 nrm use 下载地址名称
    cs
    下一篇:没有了