首页 > web前端 > js教程 > 浅谈Nodejs中内置模块的基本用法

浅谈Nodejs中内置模块的基本用法

青灯夜游
发布: 2021-03-22 09:56:14
转载
2085 人浏览过

本篇文章带大家一起了解一下Nodejs内置模块的基本用法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

浅谈Nodejs中内置模块的基本用法

相关推荐:《nodejs 教程

内置模块的基本使用

1

2

3

4

5

6

7

8

9

// 01. 导包

const fs = require("fs");

// 02. 调用unlink删除方法

// 第一个参数:要删除的文件的路径

// 第二个参数:回调函数

fs.unlink("01-内置模块fs的使用/tmp/hello.txt", (err) => {

  if (err) throw err;

  console.log("已成功删除 /tmp/hello");

});

登录后复制

fs模块的读文件

1

fs.readFile(path[, options], callback)

登录后复制

第一个参数:文件的路径

第二个参数:可选参数,读取文件的编码格式

第三个参数:回调函数

1

2

3

4

5

6

fs.readFile("01-内置模块fs的使用/etc/passwd.txt""utf-8", (err, data) => {

  // err是一个错误对象,如果没有错就返回一个null

  // data是读的文件内容

  //   console.log(err); // null

  console.log(data); // 这是一个寂寞的天,下着有些伤心的雨!

});

登录后复制

Npdemon全局模块

作用:终端下自动执行代码

  • 安装 npm i nodemon -g

  • nodemon 文件名即可

  • 自动监视文件的修改,自动重新运行

vscode快捷键

  • ctrl+d 选择相同的下一个

  • ctrl+左右 按单词跳转光标

  • ctrl+enter 光标另起一行

同步异步

  • 同步

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

console.log("哈哈");

for (var i = 0; i < 10; i++) {

  console.log(i);

}

console.log("呵呵"); -> 

     

哈哈

0

1

2

3

4

5

6

7

8

9

10

呵呵

登录后复制
  • 异步

1

2

3

4

5

6

7

8

9

console.log("哈哈");

setTimeout(() => {

  console.log("啦啦啦");

}, 1000);

console.log("呵呵"); -> 

     

哈哈

呵呵

啦啦啦

登录后复制
  • 刚才我们学习的fs模块读/写操作就是一个异步操作

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

console.log("哈哈");

const fs = require("fs");

fs.readFile("01-内置模块fs的使用/etc/望庐山瀑布.txt""utf-8", (err, data) => {

  if (err === null) {

    console.log(data);

  else {

    console.log(err);

  }

});

console.log("呵呵"); -> 

 

哈哈

呵呵

 

      望庐山瀑布

          唐·李白

    日照香炉生紫烟,

    遥看瀑布挂前川。

    飞流直下三千尺,

    疑是银河落九天。

登录后复制
  • 其实读文件也有同步操作

1

2

3

4

5

6

7

8

9

console.log("哈哈");

const fs = require("fs");

let data = fs.readFileSync("01-内置模块fs的使用/etc/passwd.txt""utf-8");

console.log(data);

console.log("呵呵"); -> 

     

哈哈

这是一个寂寞的天,下着有些伤心的雨!

呵呵

登录后复制

同步异步面试题

1

2

3

4

5

6

7

8

9

// 看代码,说出运行结果

var t = true;

 

while (t) {

    window.setTimeout(function () {

      t = false;

    }, 1000);

}

alert("end"); -> 死循环

登录后复制

和路径相关的两个变量

  • __dirname: 获现的是当前这个文件所在的整个文件夹的绝对路径
  • __filename: 拿到的是当前这个文件的绝对路径

1

2

3

4

console.log(__dirname);

// d:\前端\NodeJs\nodejs code\02-内置模块path的使用

console.log(__filename);

// d:\前端\NodeJs\nodejs code\02-内置模块path的使用\03-和路径相关的两个变量.js

登录后复制

使用拼接的绝对路径来读取文件

1

2

3

4

5

6

7

8

9

const fs = require("fs");

const fullPath = __dirname + "\\etc\\1.txt";

fs.readFile(fullPath, "utf-8", (err, data) => {

  if (err === null) {

    console.log(data);

  else {

    console.log(err);

  }

});

登录后复制

path.join([…paths])

path.join() 方法会将所有给定的 path 片段连接到一起(使用平台特定的分隔符作为定界符),然后规范化生成的路径。

长度为零的 path 片段会被忽略。 如果连接后的路径字符串为长度为零的字符串,则返回 '.',表示当前工作目录。

1

2

3

4

5

6

// 01. 导入模块

const path = require("path");

// 02. 使用方法

// join方法是把路径片段,连接成一个新的路径.

const fullPath = path.join(__dirname, "etc""1.txt");

console.log(fullPath);

登录后复制

使用path模块拼接而成的绝对路径来读取文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

// 1. 导入模块

const fs = require("fs");

const path = require("path");

// 2. 调用方法

// 2.1 使用path.joiin来拼接一个绝对路径(要读取文件的绝对路径)

const fullPath = path.join(__dirname, "etc""1.txt");

// 2.2 读文件

fs.readFile(fullPath, "utf-8", (err, data) => {

  if (err === null) {

    console.log(data);

  else {

    console.log(err);

  }

});

登录后复制

使用内置模块http来创建一个服务器

NqMrPU.png

1

2

3

4

5

6

7

8

9

10

11

12

13

14

// 1. 导入http模块

const http = require("http");

 

// 2. 创建一个服务器

// 这个方法有一个返回值,返回值就代表这个服务器

const server = http.createServer((require, response) => {

  // 3. 设置返回给用户看的内容

  response.end("hello world!");

});

 

// 4. 开启服务器

server.listen(8087, () => {

  console.log("服务器开启了:8087");

});

登录后复制

request.setHeader(name, value)

为请求头对象设置单个请求头的值。 如果此请求头已存在于待发送的请求头中,则其值将被替换。 这里可以使用字符串数组来发送具有相同名称的多个请求头。 非字符串值将被原样保存。 因此 request.getHeader() 可能会返回非字符串值。 但是非字符串值将转换为字符串以进行网络传输。

1

request.setHeader('Content-Type''application/json');

登录后复制

或:

1

request.setHeader('Cookie', ['type=ninja''language=javascript']);

登录后复制

如果想要返回去的中文不乱码,那就要设置响应头.

1

 response.setHeader("Content-Type""text/html;charset=utf-8");

登录后复制

更多编程相关知识,请访问:编程视频!!

以上是浅谈Nodejs中内置模块的基本用法的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板