内置模块的基本使用

// 01. 导包
const fs = require("fs");
// 02. 调用unlink删除方法
// 第一个参数:要删除的文件的路径
// 第二个参数:回调函数
fs.unlink("01-内置模块fs的使用/tmp/hello.txt", (err) => {if (err) throw err;console.log("已成功删除 /tmp/hello");
});

fs模块的读文件

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

第一个参数:文件的路径

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

第三个参数:回调函数

fs.readFile("01-内置模块fs的使用/etc/passwd.txt", "utf-8", (err, data) => {// err是一个错误对象,如果没有错就返回一个null// data是读的文件内容//   console.log(err); // nullconsole.log(data); // 这是一个寂寞的天,下着有些伤心的雨!
});

Npdemon全局模块

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

  1. 安装 npm i nodemon -g

  2. nodemon 文件名即可

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

vscode快捷键

  1. ctrl+d 选择相同的下一个
  2. ctrl+左右 按单词跳转光标
  3. ctrl+enter 光标另起一行

同步异步

  • 同步
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
呵呵
  • 异步
console.log("哈哈");
setTimeout(() => {console.log("啦啦啦");
}, 1000);
console.log("呵呵"); -> 哈哈
呵呵
啦啦啦
  • 刚才我们学习的fs模块读/写操作就是一个异步操作
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("呵呵"); -> 哈哈
呵呵望庐山瀑布唐·李白日照香炉生紫烟,遥看瀑布挂前川。飞流直下三千尺,疑是银河落九天。
  • 其实读文件也有同步操作
console.log("哈哈");
const fs = require("fs");
let data = fs.readFileSync("01-内置模块fs的使用/etc/passwd.txt", "utf-8");
console.log(data);
console.log("呵呵"); -> 哈哈
这是一个寂寞的天,下着有些伤心的雨!
呵呵

同步异步面试题

// 看代码,说出运行结果
var t = true;while (t) {window.setTimeout(function () {t = false;}, 1000);
}
alert("end"); -> 死循环

和路径相关的两个变量

  • __dirname: 获现的是当前这个文件所在的整个文件夹的绝对路径
  • __filename: 拿到的是当前这个文件的绝对路径
console.log(__dirname);
// d:\前端\NodeJs\nodejs code\02-内置模块path的使用
console.log(__filename);
// d:\前端\NodeJs\nodejs code\02-内置模块path的使用\03-和路径相关的两个变量.js

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

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

// 01. 导入模块
const path = require("path");
// 02. 使用方法
// join方法是把路径片段,连接成一个新的路径.
const fullPath = path.join(__dirname, "etc", "1.txt");
console.log(fullPath);

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

// 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来创建一个服务器

// 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() 可能会返回非字符串值。 但是非字符串值将转换为字符串以进行网络传输。

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

或:

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

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

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

Nodejs 内置模块的基本使用相关推荐

  1. 9.nodejs 内置模块

    nodejs 内置模块 文件操作 在 nodejs 中,提供了 fs 模块,来供我们操作文件.在 nodejs 中,操作文件都提供了同步和异步的方式,但是在实际的开发中,我们更多的还是使用异步来进行开 ...

  2. 07 【nodejs内置模块(下)】

    07 [nodejs内置模块(下)] 1.stream 模块 stream是Node.js提供的又一个仅在服务区端可用的模块,目的是支持"流"这种数据结构. 什么是流?流是一种抽象 ...

  3. 野生葫芦娃用心写的nodejs 内置模块------文件操作

    文件操作 Node中的文件系统: 文件具体操作 文件的写入 fs.writeFile() 文件的追加 fs.appendFile() 文件的读取 fs.readFile() 文件的复制 fs.copy ...

  4. 七天学会NodeJS

    2019独角兽企业重金招聘Python工程师标准>>> NodeJS基础 什么是NodeJS JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充 ...

  5. nodejs学习资料

    2019独角兽企业重金招聘Python工程师标准>>> NodeJS基础 什么是NodeJS JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充 ...

  6. axios nodejs 上传图片_Vue Axios跨域、文件上传

    本文以vue-cli中使用axios为例 安装 npm install --save axios 引用(注册到VUE实例中) import Vue from 'vue' import Axios fr ...

  7. 当Shell遇上了NodeJS

    NodeJS从诞生起发展非常迅速,社区活动非常活跃,目前扩展模块达到1500多个,并且每天都有不同的模块提交.它是构建在JavaScript引擎V8之上的JavaScript环境,它采用基于单线程的异 ...

  8. 程序猿必备福利之二上篇!!!简易使用Nodejs实现从美图网爬取清晰脱俗的美图???

    当然这里为了能够让小白也能够看懂学会,我会说的很详细,我很体谅小白的哦,分了几篇讲解,请谅解哦 这里先来一波看前美图福利,激起你的学习欲望,嘿嘿嘿!!!点击查看程序猿必备福利之二下篇##### 小白如 ...

  9. 七天学会NodeJS (原生NodeJS 学习资料 来自淘宝技术团队)

    NodeJS基础 什么是NodeJS JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充当了解析器的角色.而对于需要独立运行的JS,NodeJS就是一个解析器. ...

最新文章

  1. base64图裁剪 php_世界上最好的编程语言PHP图层裁剪服务搭建详解
  2. 很强大的一个jquery分页插件
  3. 网络编程知识预备(3) ——SOCKET、TCP、HTTP之间的区别与联系
  4. Gartner认为安全性将取代成本和敏捷性成为政府部门采用云服务的首要原因
  5. python生成yaml文件_Python实践34-读写yaml文件
  6. Python | 使用+ =运算符在字符串末尾附加文本
  7. linux中查看和开放端口
  8. 百度地图API 海量点 自定义添加信息
  9. 测试基础-01-软件测试的定义与分类
  10. java判断对象已经被回收_Java中JVM判断对象已死的基本算法分析
  11. Teamcenter 入门开发系列问答(5)
  12. 一张以你为中心的地图
  13. vc运行库各版本下载
  14. java将jsp页面表格导出excel表格数据_JSP 导出Excel表格的实例
  15. Windows7系统如果安装升级IE11浏览器
  16. B2B、B2C、C2C、O2O分别是什么意思?
  17. java图片文字识别_java初探Tess4j识别图片文字
  18. 影响微信公众号排名的因素
  19. 冬天别忘晒太阳[整理]
  20. R5S RK3568运行安卓12搭配即插即用免驱免拨号的4G LTE模组测速演示

热门文章

  1. android复位机器人图片_Universal-Image-Loader 图片异步加载类库还不熟?
  2. mysql客户端centos离线安装_mysql离线安装部署centos
  3. java小程序显示多种按钮_微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能...
  4. 微信 html5禁止拖拽,js实现微信禁止h5网页下拉,禁止微信内置浏览器下拉网页...
  5. Python学习入门1:Python 新手入门引导
  6. Linux系统格式化发fat32U盘密令,用diskpart命令格式化u盘为fat32的方法
  7. ES6-使用let关键字定义变量
  8. spingBoot整合mybatis+generator+pageHelper
  9. python朋友圈切图代码
  10. atitit。获取表格的字段注释metadata的原理以及AND 字段表格描述文档方案