node.js的介绍和使用

目录

 

一、Node.js可以做什么

二、什么是 Node.js

三、Node.js环境安装

四、使用node命令执行JS文件

五、终端窗口

1、终端窗口补充

2、vscode自带终端

3、终端使用技巧

六、模块化介绍

1、什么是模块化

2、模块的分类


 

一、Node.js可以做什么

        Node.js 作为一个 JavaScript 的运行环境,仅仅提供了基础的功能和 API。然而,基于 Node.js 提供的这些基础功能,很多强大 的工具和框架如雨后春笋,层出不穷,所以学会了 Node.js ,可以让前端程序员胜任更多的工作和岗位!

        总之,Node.js 是大前端时代的“大宝剑”,有了 Node.js 这个超级 buff 的加持,前端程序员的行业竞争力会越来越强!

二、什么是 Node.js

        Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.翻译过来中文就是Node.js 一个基于 Chrome V8 引擎的 JavaScript 运行环境。可以通俗的理解为:Node.js 为 JavaScript 代码的正常运行,提供的必要的环境。

Node.js 的官网地址: Node.js

Node.js中的JavaScript运行环境:

a763bde9a06f43a99f3f7726613b0156.png

 注意:

  • 浏览器是 JavaScript 的前端运行环境。(浏览器是客户端安装的软件)

  • Node.js 是 JavaScript 的后端运行环境。(正常情况下,Nodejs要安装到服务器上)

  • Node.js 中无法调用 DOM 和 BOM 等 浏览器内置 API。

三、Node.js环境安装

        如果希望通过 Node.js 来运行 Javascript 代码,则必须在计算机上安装 Node.js 环境才行。

        安装包可以从 Node.js 的官网首页直接下载,进入到 Node.js 的官网首页,点 击绿色的按钮,下载所需的版本后,双击直接安装即可。

        进入官网(中文),可以看到如下两个版本:建议使用 长期支持版

db03acfd941f4e7e94c43b943ef5bce0.png

 

  • LTS 为长期稳定版,对于追求稳定性的企业级项目来说,推荐安装 LTS 版本。

  • Current 为新特性尝鲜版,对于热衷于尝试新特性的用户来说,推荐安装 Current 版本的 Node.js。但是,Current 版本 中可能存在隐藏的 Bug 或安全性漏洞,因此不推荐在企业级项目中使用 Current 版本的 Node.js。

        安装成功后,打开终端(黑窗口,或者蓝窗口),在终端输入命令 node –v 后,按下回车键,即可查看已安装的 Node.js 的版本号。

四、使用node命令执行JS文件

此种方式,比较常用。可以运行写到 “xx.js” 里面的JS代码,可以运行JS文件中的代码。

操作步骤:

  • 打开终端

  • 注意终端的路径,注意在此路径中,是否能找到你的js文件。

  • 输入 “node 要执行的js文件

  • 执行文件的时候,需要保证 node xxx.js 这种格式

  • node只能运行JS代码(也就是不要 node xxx.html)

五、终端窗口

1、终端窗口补充

  • Windows

    • 自带 cmd (在文件夹路径位置,输入cmd,回车)

    • 自带 powershell (在文件夹路径位置,输入powershell ,回车)

    • 商店下载 Windows Terminal Preview

    • 安装git之后,多 git bash here

2、vscode自带终端

  • xxx.js 文件上,鼠标右键 --> 在终端中打开 --> 出现一个终端窗口 --> node xxx.js

常见问题

  • 在vscode终端中,运行node命令报错,重启vscode。

  • 执行node的路径一定要对(vscode中,文件上右键,在终端中打开,这样的路径肯定是对的)

  • 注意,尽量不要使用多个终端,首次打开终端后,后续建议使用快捷键(Ctrl + ~)切换终端

PS:其实无论是windows,还是mac系统,都可以使用第三方的终端工具或美化默认的终端。

3、终端使用技巧

  • 按 ↑ 找到曾经执行过的命令。按 ↓ 相反。

  • 按 tab 键,可以自动补全命令。

  • clear命令用于清屏。(cmd中使用cls命令清屏)

六、模块化介绍

1、什么是模块化

        模块化,就是把一个大的文件拆分成若干小文件,而且还能把小文件通过特定的语法组合到一起的实现过程。

        比如手机、电脑....等等几乎所有,都是模块化的设计,拿电脑来说,可以把电脑拆分成显示器、键盘、硬盘、内存等一个一个的小模块,当然也能够组装到一起。

模块化的优势:

  • 更利于维护(比如电脑屏幕坏了,只换屏幕就可以了;比如想升级显卡,只换显卡就行了);

  • 更好的复用性(比如有一块移动硬盘或U盘,大家都能用)

Node中,规定每个JS文件都是一个小模块。一个项目由许许多多的小模块(JS文件)组合而成。

Node中模块化的优势:

  • 更利于维护(比如,项目需要对登录模块升级,则不会影响其他模块)

  • 更好的复用性(比如有一个公共的函数,封装起来。其他所有JS文件都能使用这个函数)

2、模块的分类

  • 自定义模块

    • NodeJS中,创建的JS文件都是自定义模块。(也就是处处皆模块)

  • 内置模块(核心模块)

    • 安装Node之后,自带了很多内置模块。我们可以直接加载使用他们。

  • 第三方模块

    • 其他人编写的模块,发布到 npm 网站 上,我们可以下载使用。

(1)自定义模块

        我们创建的每个JS文件都是一个自定义模块,并且具有模块作用域,也就是在一个模块中创建的变量、常量、函数等等一切,都只能在当前模块中使用。

  • 共享(导出/暴露)内容给其他模块用,需要使用 module.exports 导出内容。

    • module 是Node中的一个全局对象,对象包含当前模块的详细信息。

    • module.exports 是模块的出口,通俗的说,就是导出内容用的,默认值是 {}

    • 比如,02-test.js 导出 age、name、fn 给其他模块用,可以 module.exports = {age, name, fn}

  • 其他模块,如果需要使用上述模块导出的内容,可以使用 require() 加载

    • let 结果 = require('模块路径')

    • 比如,let test = require('./02-test');

    • 加载自定义模块,必须加路径,即使是 ./ 也必须加。但是可以省略后缀。

示例:

01-导出内容

let age = 30;
let name = 'laotang';
let height = '175cm';
let weight = '75kg';
let square = x => x * x;

// 导出age、name、fn给其他模块使用
module.exports = { age, name, square };

02-导入内容 

let test = require('./02-test');

console.log(test); // { age: 30, name: 'laotang', square: Function... }

        一个模块导出什么,另一个模块加载后,就会得到什么。就比如,我给你三个苹果,你只能得到三个苹果,不可能得到其他的。

(2)内置模块

内置模块是Node.js 平台自带的一套基本的 API(功能模块)。也叫做核心模块。

下面介绍几个内置模块。

注意,加载内置模块,不能写路径,这是和加载自定义模块不一样的

 

01-path模块:

加载模块:

// 使用核心模块之前,首先加载核心模块
let path = require('path');
// 或者
const path = require('path');

调用path模块中的方法,来处理相应的问题,下面列举path模块中的几个方法 :

方法作用
path.basename(path[, ext])返回 path 的最后一部分(文件名)
path.dirname(path)返回目录名
path.==extname==(path)返回路径中文件的扩展名(包含.)
path.format(pathObject)将一个对象格式化为一个路径字符串
path.==join==([...paths])拼接路径
path.parse(path)把路径字符串解析成对象的格式
path.resolve([...paths])基于当前工作目录拼接路径
```js
// readFile -- 异步读取文件
fs.readFile('./test.json', (err, data) => {
    if (err) {
        console.log('读取文件出错');
    } else {
        console.log(data); // 读取到的二进制数据
        console.log(data.toString()); // 得到原始数据
    }
});

fs.readFile('./test.json', 'utf-8', (err, data) => {
    if (err) {
        console.log('读取文件出错');
    } else {
        console.log(data); // 读取到的原始数据
    }
});
```

```js
// writeFile -- 异步写入文件
fs.writeFile('./abc.html', 'hello world', (err) => {
    if (err) {
        console.log('写入文件失败');
    } else {
        console.log('文件写入成功');
    }
});
```

 

 

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值