阅读 4006

带你入坑Nodejs (一)

这是我参与8月更文挑战的第5天,活动详情查看:8月更文挑战

作为一名前端童鞋怎么能只会前端的东西呢,接下来会出一个 Nodejs 的教程系列有兴趣的可以看过了点赞加关注噢。

1. Nodejs 概述

1.1 Nodejs 介绍

  • Nodejs 是一个基于 Chrome V8 引擎的ECMAScript运行时环境。
  • Nodejs 可以执行js文件(有了 Nodejs 之后,js文件就能运行在服务器端了)。
  • Nodejs 提供了大量的工具(API),能够让我们完成文件读写、Web服务器创建等功能。

1.2 安装 Nodejs

官网:nodejs.org/en/

中文网:nodejs.cn/

image.png LTS:长期稳定版。 实际项目开发建议使用长期稳定版

Current: 最新版。最新版包含了一些新功能,如果想学习最新的功能,则可以使用该版本。但是,最新版可能会有一些未知的bug。

下载安装一路傻瓜式 Next 安装即可。 安装完成之后打开 cmd 输入 node -v 即可查看 node 版本

image.png

1.3 Nodejs和浏览器中js的区别

image.png

浏览器中js组成:ES核心 + DOM + BOM

Nodejs 中js组成:ES核心 + 全局成员 + 模块系统(系统模块、第三方模块、自动义模块)

全局成员:setTimeout、setInterval、console.log()等。 注意这几个名称和功能虽然和浏览器中一样,但是是 nodejs 自己实现的和浏览器无关。

1.4 程序体验

image.png 运行结果如下:

image.png

2. 命令行和常用命令

2.1 命令行介绍

  • windows未发布之前,人们都是用DOS(磁盘操作系统)来操作计算机。
  • DOS系统内置了很多命令(例如:cd、dir等),我们可以通过调用不同的命令来操作计算机。
  • windows发布之后保留了命令行操作模式,内置了两种命令行: Cmd 和 PowerShell,我们可以使用命令行来操作计算机。 win 7默认Cmd, win 10 默认 PowerShell。

2.2 常用命令

  • cd: 切换目录
  • dir:查看目录下所有文件和目录
  • cls:清屏
  • exit:退出
命令含义
cd \切换到根目录
cd .保持在当前目录不变
cd ..切换到上级目录
cd [目录]切换到指定目录
dir查看当前目录下所有文件和目录
cd [目录]查看指定目录下所有文件和目录
小技巧
  • 自动补全: 使用 tab键可以补充完没有敲完的命令
  • 历史命令: 按 ↑ 或者 ↓ 可以找到以前使用过的命令

3. Nodejs系统模块

3.1 系统模块介绍

  • 系统模块: 随着Nodejs一起安装,并由官方进行维护的模块。

    • 常用的系统模块: fs、http、url、path等
  • 一个模块中包含了很多方法和属性,可以帮助我们实现不同的功能

3.2 文件系统模块 --- fs

专门用来操作文件和目录。能够进行文件创建/删除,读取文件,获取文件详情等操作

3.3 文件读取 --- readFile

const fs = require('fs');
fs.readFile(var1, var2, var3);
/**
参数1: 要读取的文件路径 --- 相对路径和绝对路径均可,推荐使用绝对路径
参数2: 配置项,主要用来配置字符集。可选参数。
      如果不设置该参数,文件内容会以二进制形式返回
参数3: 读取完成后触发的回调函数,有两个参数 --- err 和 result
     读取成功:
         err: null
         result: 文件内容,如果不设置参数2,则返回二进制数据。可以使用 toString() 方法将二进制数据
                 转为正常字符串
     读取失败:
         err: 错误对象
         result: undefined
*/
复制代码

3.4 文件写入 --- writeFile

// 目标: 向 files 目录下的b.txt文件中写入一段字符串

//1. 导入/加载/引入 fs 模块
const fs = require('fs');

//2. 调用writeFile方法向文件中写入内容
//writeFile方法有两个特点:
// 1) 如果没有该文件,则尝试创建
// 2) writeFile是覆盖写入
/**
 * 参数1: 要写的文件的路径,绝对和相对路径均可
 * 参数2: 要写入的字符串
 * 参数3: 字符集,默认是utf-8
 * 参数4: 写入完成后触发的回调函数,该函数有一个参数 err
 */

fs.writeFile('./files/b.txt', '哈萨克,面对疾风吧', 'utf-8', (err) => {
    if (err) {
        console.log(err);
    }
})
复制代码

3.5 文件追加 --- appendFile

// 目标: 向b.txt文件中追加写入一个字符串

//1. 导入/加载/引入 fs 模块
const fs = require('fs');

//2. 调用appendFile方法向文件中追加写入内容
// 特点:
// 1) 如果没有该文件则尝试创建
// 2) 追加写入
// 3) 参数和writeFile方法一模一样

/**
 * 参数1: 要追加写入的文件的路径
 * 参数2: 要写入的字符串
 * 参数3: 字符集,默认是utf-8
 * 参数4: 写入完成后触发的回调函数,有一个参数 err
 */
fs.appendFile('./files/b.txt', '---我是亚索', (err) => {
    if (err) {
        console.log(err);
    }
})
复制代码

3.6 遍历目录 --- readdir

// 目标: 获取 D:\***\***\WWW 目录下所有的文件和文件夹的名称

//1. 加载 fs 模块
const fs = require('fs');

//2. 调用readdir方法遍历目录
/**
 * 参数1: 要遍历的目录的路径
 * 参数2: 字符集,默认utf-8
 * 参数3: 遍历完成后触发的回调函数,有两个参数 err 和 files
 *     err: 错误对象
 *     files: 所有文件和目录的名称,数组形式
 */
fs.readdir('D:/***/***/WWW', (err, files) => {
    if (err) {
        return console.log(err);
    }

    console.log(files);
})
复制代码

点赞支持、手留余香、与有荣焉,动动你发财的小手哟,感谢各位大佬能留下您的足迹。

下篇主要来讲 Node 创建 web 服务器

4. 往期精彩推荐

前端万字面经——基础篇

前端万字面积——进阶篇

聊一聊前端开发中最常用的两种管理工具

聊聊让人头疼的正则表达式

文章分类
前端
文章标签