溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Nodejs中內(nèi)置模塊怎么使用

發(fā)布時(shí)間:2021-03-22 10:35:56 來源:億速云 閱讀:178 作者:小新 欄目:web開發(fā)

小編給大家分享一下Nodejs中內(nèi)置模塊怎么使用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

內(nèi)置模塊的基本使用

// 01. 導(dǎo)包
const fs = require("fs");
// 02. 調(diào)用unlink刪除方法
// 第一個(gè)參數(shù):要?jiǎng)h除的文件的路徑
// 第二個(gè)參數(shù):回調(diào)函數(shù)
fs.unlink("01-內(nèi)置模塊fs的使用/tmp/hello.txt", (err) => {
  if (err) throw err;
  console.log("已成功刪除 /tmp/hello");
});

fs模塊的讀文件

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

第一個(gè)參數(shù):文件的路徑

第二個(gè)參數(shù):可選參數(shù),讀取文件的編碼格式

第三個(gè)參數(shù):回調(diào)函數(shù)

fs.readFile("01-內(nèi)置模塊fs的使用/etc/passwd.txt", "utf-8", (err, data) => {
  // err是一個(gè)錯(cuò)誤對(duì)象,如果沒有錯(cuò)就返回一個(gè)null
  // data是讀的文件內(nèi)容
  //   console.log(err); // null
  console.log(data); // 這是一個(gè)寂寞的天,下著有些傷心的雨!
});

Npdemon全局模塊

作用:終端下自動(dòng)執(zhí)行代碼

  • 安裝 npm i nodemon -g

  • nodemon 文件名即可

  • 自動(dòng)監(jiān)視文件的修改,自動(dòng)重新運(yùn)行

vscode快捷鍵

  • ctrl+d 選擇相同的下一個(gè)

  • ctrl+左右 按單詞跳轉(zhuǎn)光標(biāo)

  • ctrl+enter 光標(biāo)另起一行

同步異步

  • 同步

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("呵呵"); -> 
    
哈哈
呵呵
啦啦啦
  • 剛才我們學(xué)習(xí)的fs模塊讀/寫操作就是一個(gè)異步操作

console.log("哈哈");
const fs = require("fs");
fs.readFile("01-內(nèi)置模塊fs的使用/etc/望廬山瀑布.txt", "utf-8", (err, data) => {
  if (err === null) {
    console.log(data);
  } else {
    console.log(err);
  }
});
console.log("呵呵"); -> 

哈哈
呵呵

      望廬山瀑布
          唐·李白
    日照香爐生紫煙,
    遙看瀑布掛前川。
    飛流直下三千尺,
    疑是銀河落九天。
  • 其實(shí)讀文件也有同步操作

console.log("哈哈");
const fs = require("fs");
let data = fs.readFileSync("01-內(nèi)置模塊fs的使用/etc/passwd.txt", "utf-8");
console.log(data);
console.log("呵呵"); -> 
    
哈哈
這是一個(gè)寂寞的天,下著有些傷心的雨!
呵呵

同步異步面試題

// 看代碼,說出運(yùn)行結(jié)果
var t = true;

while (t) {
    window.setTimeout(function () {
      t = false;
    }, 1000);
}
alert("end"); -> 死循環(huán)

和路徑相關(guān)的兩個(gè)變量

  • __dirname: 獲現(xiàn)的是當(dāng)前這個(gè)文件所在的整個(gè)文件夾的絕對(duì)路徑

  • __filename: 拿到的是當(dāng)前這個(gè)文件的絕對(duì)路徑

console.log(__dirname);
// d:\前端\NodeJs\nodejs code\02-內(nèi)置模塊path的使用
console.log(__filename);
// d:\前端\NodeJs\nodejs code\02-內(nèi)置模塊path的使用\03-和路徑相關(guān)的兩個(gè)變量.js

使用拼接的絕對(duì)路徑來讀取文件

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() 方法會(huì)將所有給定的 path 片段連接到一起(使用平臺(tái)特定的分隔符作為定界符),然后規(guī)范化生成的路徑。

長度為零的 path 片段會(huì)被忽略。 如果連接后的路徑字符串為長度為零的字符串,則返回 '.',表示當(dāng)前工作目錄。

// 01. 導(dǎo)入模塊
const path = require("path");
// 02. 使用方法
// join方法是把路徑片段,連接成一個(gè)新的路徑.
const fullPath = path.join(__dirname, "etc", "1.txt");
console.log(fullPath);

使用path模塊拼接而成的絕對(duì)路徑來讀取文件

// 1. 導(dǎo)入模塊
const fs = require("fs");
const path = require("path");
// 2. 調(diào)用方法
// 2.1 使用path.joiin來拼接一個(gè)絕對(duì)路徑(要讀取文件的絕對(duì)路徑)
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);
  }
});

使用內(nèi)置模塊http來創(chuàng)建一個(gè)服務(wù)器

Nodejs中內(nèi)置模塊怎么使用

// 1. 導(dǎo)入http模塊
const http = require("http");

// 2. 創(chuàng)建一個(gè)服務(wù)器
// 這個(gè)方法有一個(gè)返回值,返回值就代表這個(gè)服務(wù)器
const server = http.createServer((require, response) => {
  // 3. 設(shè)置返回給用戶看的內(nèi)容
  response.end("hello world!");
});

// 4. 開啟服務(wù)器
server.listen(8087, () => {
  console.log("服務(wù)器開啟了:8087");
});

request.setHeader(name, value)

為請(qǐng)求頭對(duì)象設(shè)置單個(gè)請(qǐng)求頭的值。 如果此請(qǐng)求頭已存在于待發(fā)送的請(qǐng)求頭中,則其值將被替換。 這里可以使用字符串?dāng)?shù)組來發(fā)送具有相同名稱的多個(gè)請(qǐng)求頭。 非字符串值將被原樣保存。 因此 request.getHeader() 可能會(huì)返回非字符串值。 但是非字符串值將轉(zhuǎn)換為字符串以進(jìn)行網(wǎng)絡(luò)傳輸。

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

或:

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

如果想要返回去的中文不亂碼,那就要設(shè)置響應(yīng)頭.

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

以上是“Nodejs中內(nèi)置模塊怎么使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI