重生之再学js之 - node.js-01

node.js的介绍

node.js可以做什么

基于 Express/Koa 框架(http://www.expressjs.com.cn/),可以快速构建 Web 应用

基于 Electron 框架(https://electronjs.org/), 可以构建跨平台的桌面应用,比如 vscode

基于 restify 框架(http://restify.com/),可以快速构建 API 接口项目

读写和操作数据库、创建实用的命令行工具辅助前端开发

Node.js 环境

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。

通俗的理解:Node.js 为 JavaScript 代码的正常运行,提供的必要的环境

浏览器 和 Node,都是 JavaScript 的运行环境

具体来说,浏览器是客户端的JS环境;

Node是服务端的JS运行环境 不同环境中,都可以运行 ECMAScript 核心代码

WebAPI是浏览器特有的,只能在浏览器环境下使用;

Node内置API(内置模块)是Node环境特有的,只能在Node环境中使用

Node.js 的安装

下载 | Node.js 中文网 (nodejs.cn)

点击上方链接进入下载

 选择版本

建议下载旧版本的因为旧版本比较稳定

打开下载好的安装包,一直下一步即可安装。

如果不想安装在C盘,则把安装路径中的C修改为D或者E即可。

安装后,打开终端窗口,执行 node -v 命令,如果看到版本号,说明安装成功。

 最好安装14.15.1及其以上版本,不要安装低于 12.0.0版 的Node。

win7系统只能安装 12.xx.xx 版本,建议升级到win10系统

Node环境中运行JavaScript

如果有大段的JS代码需要在Node环境中运行 可以把JS代码写到JS文件中 终端中,使用 node xxx.js 命令即可运行文件中的代码   建议文件名用tab键补齐如果补不齐说明代码错误

 Node环境中运行JavaScript代码,需要使用终端,没有像浏览器那样的界面。

第一种模式(REPL),只适合执行少量的JS代码,或平时的代码练习用;比较像浏览器环境中的Console面板

第二种模式(执行JS文件),开发中常用。这种模式,要注意路径。

注意、注意、注意,两种模式不能混用。如果你用第一种模式呢,必须先退出,然后才能用第二种模式。

vscode中的终端

无论执行 git 命令,还是 node 命令,都需要使用终端工具 vscode内置了终端工具,我们可以使用它来执行 git 或 node 命令 最佳打开vscode终端的方式 在文件或文件夹上,鼠标右键,在集成终端中打开 这样打开的好处是,终端路径刚好是 当前文件或文件夹的路径

 注意点:

不建议打开很多终端,没有特殊情况使用一个最好

注意终端中的路径,是不是代码文件夹或项目文件夹 第一次打开终端,

建议:鼠标在文件上右键,选择“在集成终端中打开”

后续,可以使用快捷键 Ctrl + ~ 切换终端

模块化设计

模块化设计,就是把 整体 拆分成 若干小零件,而且还能把小零件 组装 到一起的设计思想。

模块化的优点: 更利于维护

更好的复用性 

Node中的模块化

规定,用户创建的每个JS文件,就是一个小模块,叫做自定义模块

我们可以按照一定的语法将这些小模块组合到一起,形成一个完整的项目

Node中的模块化,通俗的说,就是在JS文件中,能够使用另一个文件中的变量 言外之意,就是把两个毫不相干的JS文件组装到一起

 比如有02和03两个文件

03

console.log('我是聪明蛋儿');
let str1 = 'abc'
let str2 = 'xyz'
let fn1 = () => console.log('fn1');
let fn2 = () => console.log('fn2');
// 导出方法1
// module.exports.str1 = str1;
// module.exports.fn1 = fn1;
module.exports = {
    str2,
    fn2
}

02

let obj = require('./03-b')
console.log(obj);

使用require方法就可以在node输出02可以使用03里的代码了

注意,注意,注意,导入模块时必须带路径,即便两个JS文件在同一个目录,也要加 “./” 

Node中的模块分类

自定义模块:用户自己创建的每个JS文件,都是自定义模块

内置模块(核心模块):Node安装后,即可使用的模块,Node环境自带。

第三方模块:其他人或公司、组织开发的模块,发布到 npm 网站,我们需要下载使用的模块

加载模块的语法

加载自定义模块 a 文件:

        必须通过 module.exports 共享(导出、暴露)当前模块中的变量

        b 文件,需要通过 require() 加载(导入)。(a 文件导出什么,b 文件就得到什么)

         加载自定义模块时,必须要带路径 (相对路径、绝对路径都可以;但必须带路径,哪怕是 ./ 也不能省略)

        加载自定义模块时,可以省略后缀

加载内置模块;

        直接使用 require() 加载即可。

        加载模块时,无需带路径,比如 require('fs')

        加载内置模块,得到对象类型,对象中内置了很多API方法

加载第三方模块

        必须先下载(后续讲解)

了解内置模块

内置模块,顾名思义,即 Node 环境自带的模块;安装完Node即可直接使用

Node内置模块有很多,具体参见 http://nodejs.cn/api/

加载内置模块:let 变量 = require('模块名');

模块和模块之间很好区分,看模块名即可确定他们的作用

 内置模块 - fs 模块

fs 模块,f(file)s(system),文件系统;所有关于文件的操作,都可以通过这个模块完成,

fs.readFile() 方法的作用是:读取文件

fs.readFile('文件路径', [utf-8], (err, data) => {
  // 读取无错误,err=null; 读取有错误,err=错误对象
  // data 表示读取的结果
})

fs.writeFile() 方法的作用是:写入文件

fs.writeFile('文件路径', '写入的内容', err => {
  // 写入无错误,err=null; 写入有错误,err=错误对象
})

内置模块 - path 模块

path 模块,path 是路径的意思;所有和路径相关的操作,都可以通过这个模块完成

path.extname() 方法的作用是:获取路径中的后缀

path.extname('文件路径');

path.extname('css/index.css'); // .css

path.extname('E:/a/b/index.html'); // .html

path.extname('assets/js/login.xyz'); // xyz

path.extname('abc/bcd/index'); // null

path.join() 方法的作用是:拼接给出的路径

参数:两个或更多个路径

额外补充:Node中,有一个全局变量 __dirname ,它表示当前 JS 文件所在的绝对路径

console.log(__dirname); // D:/study/100/Node01/code

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

path.join('css', 'index.css'); // css/index.css

path.join('a', 'b', 'c', 'd.js'); // a/b/c/d.js

path.extname(__dirname, 'js', 'a.js');  
// D:/study/100/Node01/code/js/a.js

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值