首页 > 编程语言 >Node

Node

时间:2022-11-07 20:25:55浏览次数:33  
标签:Node 文件 exports JavaScript js 模块

一、Node开发概述

(一)为什么要学习服务器端开发基础

1、能够和后端程序员更加紧密的配合

2、网站业务逻辑前置,学习前端技术需要后端技术支持(Ajax)

3、拓宽知识视野,能够站在更高的角度审视整个项目

(二)服务器端开发要做的事情

1、实现网站的业务逻辑

2、数据的增删改查

(三)为什么选择Node

1、使用JavaScript语法开发后端应用

2、一些公司要求前端工程师掌握Node开发

3、生态系统活跃,有大量开源库可以使用

4、前端开发工具大多基于Node开发

(四)Node是什么

1、Node是一个基于Chrome V8引擎的JavaScript代码运行环境。

2、运行环境:

(1)浏览器(软件)能够运行JavaScript代码,浏览器就是JavaScript代码的运行环境

(2)Node(软件)能够运行JavaScript代码,Node就是JavaScript代码的运行环境

二、Node运行环境搭建

(一)Node.js运行环境安装

1、官网:https://nodejs.org/en/

 

 

 (1)LTS = Long Term Support 长期支持版 稳定版

 (2)Current 拥有最新特性 实验版

(二)PATH环境变量

存储系统中的目录,在命令行中执行命令的时候系统会自动去这些目录中查找命令的位置。

三、Node.js快速入门

(一)Node.js 的组成

1、JavaScript由三部分组成:ECMAScript、DOM、BOM

2、Node.js是由ECMAScript及Node环境提供的一些附加API组成的,包括文件、网络、路径等等一些更加强大的API。

 

 

 (二)Node.js基础语法

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

四、Node.js模块化开发

(一)JavaScript开发弊端

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

(1)文件依赖(文件与文件之间依赖不明确的问题)

(2)命名冲突(命名冲突导致代码覆盖的问题)

 

 

 (二)生活中的模块开发

 

 可以把电脑的不同硬件看成不同的模块。

模块化开发的好处,某一个模块的损坏,不会影响其他模块的正常运行,只需要把坏掉的模块换掉就行。

(三)软件中的模块化开发

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

 

(四)Node.js中模块化开发规范

1、Node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到。

2、模块内部可以使用exports对象进行成员导出,使用require方法导入其他模块。

 

 (五)模块成员导出

// a.js

// 在模块内部定义变量

let version = 1.0;

// 在模块内部定义方法

const sayHi = name => `您好,${name}`;

// 向模块外部导出数据

exports.version = version;

exports.sayHi = sayHi;

(六)模块成员的导入

1、

// b.js

// 在b.js模块中导入模块a

let a = require('./a.js');

// 输出b模块中的version变量

console.log(a.version);

// 调出b模块中的sayHi方法 并输出其返回值

console.log(a.sayHi('张三'));

2、导入模块时后缀可以省略

(七)模块成员导出的另一种方式

1、

module.exports.version = version;

module.exports.sayHi = sayHi;

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

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

 

 一旦 exports和module.exports指向的是两个不同的对象,以module.exports为准。

 五、系统模块

(一)什么是系统模块

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

 

 (二)系统模块fs 文件操作

f: file 文件,s:system 系统,文件操作系统

const fs = require('fs');

1、读取文件内容

fs.readFile('文件路径/文件名称'[,'文件编码'],callback);

(1)读取文件语法示例:

// 读取上一级css目录下中的base.css

fs.readFile('../css/base.css', 'utf-8', (err, doc) => {

  // 如果文件读取发生错误 参数err的值为错误对象 否则err的值为null

  // doc参数为文件内容

  if (err == null) {

    // 在控制台中输出文件内容

    console.log(doc);

  }

});

2、写入文件内容

fs.writeFile('文件路径/文件名称', '数据', callback);

(1)写入文件语法示例:

const content = '<h3>正在使用fs.writeFile写入文件内容</h3>';

fs.writeFile('./index.html', content, err => {

  if(err != null) {

    console.log(err);

    return;

  }

  console.log('文件写入成功');

});

(三)系统模块path路径操作

1、为什么要进行路径拼接

(1)不同操作系统的路径分隔符不统一

(2)/public/uploads/avatar

(3)Windows上是 \ /

(4)Linus 上是 /

(四)路径拼接语法

1、语法

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

2、示例:

// 导入path模块

const path = require('path');

// 路径拼接

let finalPath = path.join('itcast', 'a', 'b', 'c.css');

// 输出结果 itcast\a\b\c.css

console.log(finalPath);

(五)相对路径VS绝对路径

1、大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行够不够级的当前工作目录

2、在读取文件或者设置文件路径时都会选择绝对路径

3、使用__dirname获取当前文件所在的绝对路径

 六、第三方模块

(一)什么是第三方模块

别人写好的、具有特定功能的、我们能直接使用的模块即第三方模块,由于第三方模块通常都是由多个文件组成并且被放置在一个文件夹中,所以又名包。

1、第三方模块有两种存在形式:
(1)以js文件的形式存在,提供实现项目具体功能的API接口;

(2)以命令行工具形式存在,辅助项目开发。

(二)获取第三方模块

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

 

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

(1)下载:npm install 模块名称

(2)卸载:npm uninstall package 模块名称

3、全局安装与本地安装:

(1)命令行工具:全局安装

(2)库文件:本地安装

 (三)第三方模块 nodemon

1、nodemon是一个命令行工具,用以辅助项目开发。

2、在Node.js中,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐。

3、使用步骤:

(1)使用npm install nodemon -g 下载它

(2)在命令行工具中用nodemon命令代替node命令执行文件

(四)第三方模块 nrm

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

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

3、使用步骤:

(1)使用npm install nrm -g 下载它

(2)查询可用下载地址列表 nrm ls

(3)切换npm下载地址 nrm use 下载地址名称

 

标签:Node,文件,exports,JavaScript,js,模块
From: https://www.cnblogs.com/hunanxyz/p/16864615.html

相关文章

  • nodeType 属性
    nodeType属性返回节点的类型。nodeType是只读的。比较重要的节点类型有:元素类型NodeType元素1属性2文本3注释8文档9......
  • Node
     1、Node.js中的流是什么?使用流有什么好处?流有哪些典型应用?概念: 流(Stream)是基于EventEmitter的数据管理模式,由各种不同的抽象接口组成,主要包括可写、可读、可读写......
  • Node中文件断点续传原理和方法总结
    GuanBlogCodeismybaby!Mybloghttps://guanqi.xyz!博客园首页新随笔联系订阅管理随笔-35  文章-0  评论-3  阅读- 67699Node......
  • NodeJs断点调试详细说明
    node在运行js的时候,可以传递参数让其运行在调试模式,运行在调试模式后,引擎会向某个端口发送调试相关信息。一、在devTools中调试1.在chrome中接收调试信息在浏览器上打开:ch......
  • 细说nodejs的path模块
    前言path模块是nodejs中用于处理文件/目录路径的一个内置模块,可以看作是一个工具箱,提供诸多方法供我们使用,当然都是和路径处理有关的。同时在前端开发中path模块出现......
  • 用 nodejs 搭建脚手架
    1前言1.1像我们熟悉的vue-cli,taro-cli等脚手架,只需要输入简单的命令taroinitproject,即可快速帮我们生成一个初始项目。在日常开发中,有一个脚手架工具可以用来提高......
  • 理解Nodejs中的进程间通信
    前置知识文件描述符在Linux系统中,一切都看成文件,当进程打开现有文件时,会返回一个文件描述符。文件描述符是操作系统为了管理已经被进程打开的文件所创建的索引,用来指......
  • node.js inspect 浏览器 断点调试技巧与原理
    做前端开发你一定会用到浏览器自带的各种调试工具firebug谷歌的debugtools等,我们太过于熟悉使用这些工具了,以致于在node开发中同样的js文件我们是否也可以用浏览器就行调......
  • 卸载Node及使用nvm管理node
    卸载Node1、搜索控制面板,进入并卸载2、卸载完成,window+r-->cmd-->输入node-v检查是否真的卸载完成了安装nvm1、下载安装包在这个地址下载https://github.......
  • 【node专题】node几种调试方式
    【node专题】node几种调试方式前端工作日2021-11-24223点击上方【前端工作日】关注我哦~node项目调试和我们写web界面的调试基本是一致的,本质都是在某个地方查......