最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js程序中的本地文件操作用法小結(jié)

 更新時(shí)間:2016年03月06日 16:35:03   投稿:goldensun  
這篇文章主要介紹了Node.js程序中的本地文件操作用法小結(jié),作為運(yùn)行在服務(wù)器端的JavaScript解釋器,Node中自然擁有操作本地文件的方法,需要的朋友可以參考下

Node最引以為傲的就是它有一個(gè)非常小的核心。有一些語(yǔ)言綁定了完整的POSIX API,而 Node實(shí)現(xiàn)了盡可能少的綁定,并通過同步、異步或流API形式暴露他們。

這種方法意味著,操作系統(tǒng)中有一些非常方便的功能,需要在Node中重建。這是一個(gè)教你如何使用文件系統(tǒng)軟件包的實(shí)用教程。


引用文件
與文件系統(tǒng)的交互很重要的一點(diǎn)是要指向正確的文件。由于NPM的包使用相對(duì)路徑引用,所以你不能把路徑寫死在代碼。有兩個(gè)主要方式來以確保包能引用到正確的文件:

// 使用 `path.join()` 而不是 `+` 確保Windows也能正常工作
const path = require('path')

// 找到基于調(diào)用點(diǎn)的相對(duì)路徑,對(duì)于命令行程序(CLI applications)非常實(shí)用
path.join(process.cwd(), 'my-dynamic-file')
// 或者
path.resolve('my-dynamic-file')

// 基于一個(gè)文件找到另外一個(gè)文件
path.join(__dirname, 'my-package-file')


讀取文件
在節(jié)點(diǎn)中的異步讀取文件的最簡(jiǎn)單方法就是使用流!下面是一個(gè)例子:

const path = require('path')
const fs = require('fs')

// read a file and pipe it to the console
fs.createReadStream(path.join(__dirname, 'my-file'))
 .pipe(process.stdout)

創(chuàng)建文件
創(chuàng)建文件也并不是很難,這里有一個(gè)用node實(shí)現(xiàn)的cat命令:

const path = require('path')
const fs = require('fs')

// cat ./my-file > ./my-other-file
fs.createReadStream(path.join(__dirname, 'my-file'))
 .pipe(fs.createWriteStream(path.join(__dirname, './my-other-file')))

刪除文件
在Shell腳本中刪除的文件和目錄通常使用 rm-rf 命令。NodeJS中一個(gè) rimraf 也實(shí)現(xiàn)了相同的功能:

const rimraf = require('rimraf')
const path = require('path')

rimraf(path.join(__dirname, './my-directory'), err => {
 if (err) throw err
})


創(chuàng)建目錄
創(chuàng)建跟刪除文件很相似,使用 mkdirp 包

const mkdirp = require('mkdirp')
const path = require('path')

mkdirp(path.join(__dirname, 'foo/bar'), err => {
 if (err) throw err
})

查找文件
使用 readdirp 查找當(dāng)前目錄下的文件:

const readdirp = require('readdirp')
const json = require('JSONStream')
const path = require('path')

// recursively print out all files in all subdirectories
// to the command line. The object stream must be
// stringified before being passed to `stdout`.
readdirp({ root: path.join(__dirname) })
 .pipe(json.stringify())
 .pipe(process.stdout)


使用findup查找當(dāng)前父級(jí)目錄中的文件:

const findup = require('findup')
const path = require('path')

// recurse up all files relative to __dirname and find
// all `package.json` files.
findup(path.join(__dirname), 'package.json', (err, res) => {
 if (err) throw err
 console.log('dir is: ' + res)
})


關(guān)于管道(pipes)

在管道中對(duì)整個(gè)數(shù)據(jù)流的錯(cuò)誤進(jìn)行一次處理非常。而不用對(duì)每個(gè)單獨(dú)的數(shù)據(jù)流使用 .on('error', cb) :

const pump = require('pump')
const fs = require('fs')

// oh no, no errors are handled!
fs.createReadStream('./in.file').pipe(fs.createWriteStream('./out.file'))

// that's better, we're handing errors now
const rs = fs.createReadStream('./in.file')
const ws = fs.createWriteStream('./out.file')
pump(rs, ws, err => {
 if (err) throw err
})


相關(guān)文章

  • nodejs使用node-xlsx生成excel的方法示例

    nodejs使用node-xlsx生成excel的方法示例

    這篇文章主要介紹了nodejs使用node-xlsx生成excel,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Node.js 緩沖區(qū)(Buffer)模塊的方法及實(shí)例分析

    Node.js 緩沖區(qū)(Buffer)模塊的方法及實(shí)例分析

    在本篇文章里小編給大家整理了一篇關(guān)于Node.js 緩沖區(qū)(Buffer)模塊的方法及實(shí)例分析,對(duì)此有興趣的朋友們可以跟著學(xué)習(xí)下。
    2022-01-01
  • NodeJs中的VM模塊詳解

    NodeJs中的VM模塊詳解

    這篇文章主要介紹了NodeJs中的VM模塊詳解,本文講解了什么是VM? 、VM模塊的runInThisContext、runInThisContext方法等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • 深入解析桶排序算法及Node.js上JavaScript的代碼實(shí)現(xiàn)

    深入解析桶排序算法及Node.js上JavaScript的代碼實(shí)現(xiàn)

    桶排序Radix Sort算法利用分治思想將元素分入各桶中排序后匯總,以下我們就來深入解析桶排序算法及Node.js上JavaScript的代碼實(shí)現(xiàn),需要的朋友可以參考下
    2016-07-07
  • 了不起的node.js讀書筆記之例程分析

    了不起的node.js讀書筆記之例程分析

    這篇文章主要介紹了了不起的node.js讀書筆記之例程分析,需要的朋友可以參考下
    2014-12-12
  • node.js中的fs.stat方法使用說明

    node.js中的fs.stat方法使用說明

    這篇文章主要介紹了node.js中的fs.stat方法使用說明,本文介紹了fs.stat的方法說明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 解決Linux無法正常安裝與卸載Node.js的方法

    解決Linux無法正常安裝與卸載Node.js的方法

    最近在學(xué)習(xí)node.js,所以下面這篇文章主要給大家介紹了關(guān)于如何解決Linux無法正常安裝與卸載Node.js的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • nodejs報(bào)digital?envelope?routines::unsupported錯(cuò)誤的最新解決方法

    nodejs報(bào)digital?envelope?routines::unsupported錯(cuò)誤的最新解決方法

    這篇文章主要介紹了nodejs報(bào)digital?envelope?routines::unsupported錯(cuò)誤的最新解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • Node.js靜態(tài)服務(wù)器的實(shí)現(xiàn)方法

    Node.js靜態(tài)服務(wù)器的實(shí)現(xiàn)方法

    這篇文章主要介紹了Node.js靜態(tài)服務(wù)器的實(shí)現(xiàn)方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • 一文詳解Node中module.exports和exports區(qū)別

    一文詳解Node中module.exports和exports區(qū)別

    這篇文章主要介紹了一文詳解Node中module.exports和exports區(qū)別
    2023-03-03

最新評(píng)論

哈巴河县| 盖州市| 新巴尔虎左旗| 大余县| 湘西| 江都市| 巴林右旗| 乡宁县| 呈贡县| 承德县| 浪卡子县| 东兴市| 宁陵县| 布尔津县| 宜宾县| 中阳县| 长治市| 海晏县| 滨海县| 本溪市| 庐江县| 邻水| 公安县| 通许县| 塔城市| 灵石县| 平度市| 昌宁县| 商丘市| 大港区| 澄江县| 梨树县| 介休市| 松潘县| 冷水江市| 台江县| 大英县| 陈巴尔虎旗| 略阳县| 辰溪县| 齐河县|