博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nodejs 内置模块的基本使用
阅读量:2054 次
发布时间:2019-04-28

本文共 3254 字,大约阅读时间需要 10 分钟。

内置模块的基本使用

// 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); // null console.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("呵呵"); -> 哈哈012345678910呵呵
  • 异步
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来创建一个服务器

NqMrPU.png

// 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.setHeader('Content-Type', 'application/json');

或:

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

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

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

转载地址:http://jcclf.baihongyu.com/

你可能感兴趣的文章
GitLab克隆项目出现 “git未能顺利结束(退出码128)”问题的解决
查看>>
SpringBoot整合FastDFS(附源码)
查看>>
在RoboWare Studio下利用python语言实现话题
查看>>
科学计算库——NumPy库
查看>>
数据分析处理库——Pandas
查看>>
Ubuntu 18.04 swap分区扩展
查看>>
Sophus的编译与使用
查看>>
Python中切片的用法
查看>>
安装OpenCV时提示缺少boostdesc_bgm.i文件的问题解决方案(附带百度云资源)
查看>>
最简单的 kubernetes 高可用安装方式
查看>>
Contour 学习笔记(一):使用 Contour 接管 Kubernetes 的南北流量
查看>>
K8s 学习者绝对不能错过的最全知识图谱(内含 58个知识点链接)
查看>>
Contour 学习笔记(一):使用 Contour 接管 Kubernetes 的南北流量
查看>>
Contour 学习笔记(二):使用级联功能实现蓝绿部署和金丝雀发布
查看>>
Kubectl 的替代品:kubeman
查看>>
以后别人再问你什么是 Istio,就把这篇文章甩给他
查看>>
新书推荐 |《Prometheus监控实战》
查看>>
Tekton Pipeline 教程
查看>>
Istio 1.3 发布,HTTP 遥测不再需要 Mixer
查看>>
Kubernetes Dashboard 终结者:KubeSphere
查看>>