Node开发 P1-4、43、5-24

目录

Node 开发

概述

Node.js 基础使用

Node.js 模块化开发

1、模块化规则

2、系统模块  

fs 文件操作模块

path 路径操作模块

3、第三方模块

第三方模块 nodemon、nrm、gulp

package.json 文件

4、模块的加载机制


Node 开发

概述

Node 属于服务器端开发,使用 JS 语法开发后端应用;

生态系统活跃,有大量开源库可调用;

前端开发工具大多基于 Node 开发。

 

Node 是一个基于 Chrom V8 引擎的 JS 代码运行环境

JS 是由 ECMAScript、DOM、BOM 三部分组成的,而 Node.js 是由 ECMAScript 和 Node 环境提供的一些附加 API 组成的,包括文件、网络、路径等。

 

Node.js 基础使用

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

  1. 创建 .js 文件,
  2. 用命令行工具进入到 js 文件的目录,然后 “node 文件名” 命令执行文件。

 

P43   3.3

Node.js 全局对象global

类似于浏览器中的全局对象是 window,且 Node 的全局对象 global 也有类似的方法:

console.log、setTimeout、setInterval() 等,前面也是省略了 global. 

 

 

Node.js 模块化开发

10132851

 

JS 两大问题:

  • 文件之间依赖关系不明确
  • 命名冲突会导致代码覆盖

Node.js 模块化开发可以解决这些问题。

 

 

1、模块化规则

认为 JS 文件就是一个模块,模块内部定义的变量和函数在外部无法得到;

可以在模块内部使用 exports 对象导出自身的成员:          exports.导出名 = 内部成员名

还可以用     module.exports...

 

两种导出方式的关系:

exports 是 module.exports 的别名,都是地址引用;

同时用  exports 和 module.exports.属性名 = 属性值  来导出对象的属性时,是导出的同一个对象;

但是当 exports 和 module.exports 指向的不是同一个对象时,导入模块的文件所接收的对象是以 module.exports 为准。

 

使用 require 方法导入其他模块,接收到的是一个对象:     自定义一个名词来接收 = require('导入文件名')   

其中文件名的后缀 .js 可省略不写。

 

 

2、系统模块  

10132854

是指 Node 运行环境提供的 API。

在一个模块中可以直接导入。

 

fs 文件操作模块

(file system)

导入文件操作模块:  const  fs = require('fs')

 

读取文件操作:   

fs.readFile('文件路径/名称', '文件编码', (err, doc) => {         // callback回调函数
    // 如果文件读取出错,err返回一个包含错误信息的对象,如果没错 err就是null
    // doc 返回文件读取的结果
    if (err == null) {
        console.log(doc);
    } else {
        console.log(err);
    }
});

 

写入文件内容操作:

fs.writeFile('写入的文件路径/名称', '写入的数据', err => {         // callback回调函数
    if (err == null) {
        console.log('文件写入成功');
    } else {
        console.log(err);
        return;
    }
});

如果写入的文件原本是不存在的,这个操作就会先创建文件。

 

 

path 路径操作模块

路径拼接操作:

因为在不同系统,路径分隔符不一样;

同上,先用 require 引入模块,然后拼接,得到一个适合系统的完整路径;

                                  path.join('路径1', '路径2', '路径3'... )

 

__dirname(两个下划线)  获取当前文件所在目录的绝对路径;

所以可以用   path.join('__dirname', '文件名')   得到当前文件的绝对路径。

  • 在执行文件时,文件中的相对路径有时使用的是相对于命令行工具当前工作目录的路径,会造成错误;
  • 所以大多数情况下,读取文件、设置文件路径都使用绝对路径。
  • 但 require 方法中可以使用相对路径,因为它就是相对于当前文件的路径。

 

 

3、第三方模块

10132858

通常由多个文件组成并放在一个文件夹中,所以第三方模块又称为

存在形式:JS文件(库) 或 命令行工具 

 

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

npm(node package manager):node的第三方模块管理工具,已集成在 Node.js 中;

在命令行工具中:

  • 下载第三方模块:npm install 模块名称             —— 本地安装
  • 卸载第三方模块:npmuninstall package 模块名称

一般对库文件是本地安装,对命令行工具要全局安装。

 

 

第三方模块 nodemon、nrm、gulp

nodemon:是一个辅助项目开发的命令行工具,保存文件后自动执行。

 

nrm:切换 npm 的下载地址,将国外地址切换到国内。

 

gulp:基于 node 平台开发的前端构造工具,将机械化的操作编写成命令行任务,让它自动执行;

功能如 HTML\CSS\JS 文件压缩合并、ES6\less 语法转换、公共文件抽离、修改文件后浏览器自动刷新等。

 

 

Gulp 的使用

P15-20

gulp 准备、执行步骤:

  1. nmp install gulp 安装gulp库;
  2. 在任务根目录下建立 gulpfile.js 文件;
  3. 在任务根目录下建立 src目录(放置源代码文件) 和 list目录(放置处理后的文件);
  4. 在 gulpfile.js 文件中编写任务;
  5. 用 gulp 命令行工具,执行 JS 文件中 gulp.task 创建的任务,执行时直接 gulp + 任务名。

 

Gulp 提供的方法:

  • gulp.src(文件路径):获取要处理的文件;
  • gulp.dest(输出路径):输出处理后的文件;
  • gulp.task('任务名称', 箭头回调函数):建立 gulp 任务;
  • gulp.watch():监控文件的变化。

 

Gulp 其他很多功能的实现是通过插件实现的,插件有:

gulp-htmlmin(压缩html文件)、gulp-csso(压缩css文件)、gulp-babel(JS语法转换 es6=>es5)、gulp-less(less=>css语法转换)等等。

gulp 插件的使用步骤:

  1. npm 下载插件;
  2. 在 gulpfile.js 文件中引入插件;
  3. 调用插件。

 

 

package.json 文件

项目描述文件,里面记录了当前项目信息,如项目名称、版本、作者、依赖的第三方模块等等

npm 提供的功能,使用 npm init -y  生成 package.json 文件。

 

两种依赖关系

项目依赖:在项目开发和线上运营阶段,都需要依赖的第三方模块;

通过  npm install  下载的,并添加在 package.json 文件中的 dependencies 字段中。

 

开发依赖:只在项目开发阶段需要依赖的第三方模块;

通过  npm install 模块名 --save-dev  下载的,并添加在 package.json 文件中的 devDependencies 字段中。

 

package-lock.json 文件

记录模块之间的依赖关系;

锁定包的版本、加快包的下载速度。

 

 

4、模块的加载机制

10132887

 

模块查找规则

当 require('模块名') 中的模块名是完整路径时,就正常导入模板;

当它只是一个路径,没有后缀时,或者当它没有路径也没有后缀,只是一个单词时,则按如下的流程来查找模块:

                      

12.2

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值