рдЖрдЬ, Node.js рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рдиреМрд╡реЗрдВ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо fs рдФрд░ рдкрде рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ - рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдкрдереЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ, рдЙрдиреНрд╣реЗрдВ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред

[рд╣рдо рдЖрдкрдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ] рдЪрдХреНрд░ рдХреЗ рдЕрдиреНрдп рднрд╛рдЧрднрд╛рдЧ 1:
рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдЖрд░рдВрдн рдХрд░рдирд╛рднрд╛рдЧ 2:
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, V8, рдХреБрдЫ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЧреБрд░рднрд╛рдЧ 3:
рд╣реЛрд╕реНрдЯрд┐рдВрдЧ, рдЖрд░рдИрдкреАрдПрд▓, рдХрдВрд╕реЛрд▓, рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВрднрд╛рдЧ 4:
npm, package.json рдФрд░ package-lock.json рдлрд╛рдЗрд▓реЗрдВрднрд╛рдЧ 5:
npm рдФрд░ npxрднрд╛рдЧ 6:
рдИрд╡реЗрдВрдЯ рд▓реВрдк, рдХреЙрд▓ рд╕реНрдЯреИрдХ, рдЯрд╛рдЗрдорд░рднрд╛рдЧ 7:
рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрднрд╛рдЧ 8:
Node.js рдЧрд╛рдЗрдб, рднрд╛рдЧ 8: HTTP рдФрд░ WebSocket рдкреНрд░реЛрдЯреЛрдХреЙрд▓рднрд╛рдЧ 9:
Node.js рдЧрд╛рдЗрдб, рднрд╛рдЧ 9: рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛рднрд╛рдЧ 10:
Node.js рдЧрд╛рдЗрдб, рднрд╛рдЧ 10: рдорд╛рдирдХ рдореЙрдбреНрдпреВрд▓, рд╕реНрдЯреНрд░реАрдо, рдбреЗрдЯрд╛рдмреЗрд╕, NODE_ENVNode.js рдЧрд╛рдЗрдб рдХреА рдкреВрд░реНрдг рдкреАрдбреАрдПрдл Node.js рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреЗ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реНрдерд┐рдд рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХреЗрдВ, рдЖрдкрдХреЛ рдПрдХ рдлрд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП
fs
рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕
open()
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рд╡рд░рдгрдХ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
const fs = require('fs') fs.open('/Users/flavio/test.txt', 'r', (err, fd) => { //fd - })
fs.open()
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░,
r
рдзреНрдпрд╛рди рджреЗрдВред рдпрд╣ рдПрдХ рдзреНрд╡рдЬ рд╣реИ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЛрд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣рд╛рдБ рдХреБрдЫ рдФрд░ рдЭрдВрдбреЗ рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рдЕрдХреНрд╕рд░ рдЗрд╕ рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:
r+
- рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВредw+
- рдлрд╛рдЗрд▓ рдХреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рдкреЙрдЗрдВрдЯрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓ рдЦреЛрд▓реЗрдВред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдмрдирд╛рдИ рдЧрдИ рд╣реИредa
- рдлрд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рдкреЙрдЗрдВрдЯрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓ рдЦреЛрд▓реЗрдВред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдмрдирд╛рдИ рдЧрдИ рд╣реИредa+
- рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рдкреЙрдЗрдВрдЯрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдмрдирд╛рдИ рдЧрдИ рд╣реИред
рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд┐рдзрд┐
fs.openSync()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦреЛрд▓реА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдЬреЛ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рд▓реМрдЯрд╛ рджреЗрддреА рд╣реИ:
const fs = require('fs') try { const fd = fs.openSync('/Users/flavio/test.txt', 'r') } catch (err) { console.error(err) }
рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рд╡рд░рдгрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЪрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛
рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ; рдЖрдк рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ Node.js. рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣
fs
рдореЙрдбреНрдпреВрд▓ рд╕реЗ
stat()
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкрде рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛, рдФрд░ Node.js рдХреЗ рдмрд╛рдж рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдХреЙрд▓рдмреИрдХ рдХреЛ рдкрд╛рд░рд┐рдд рд╡рд┐рдзрд┐
stat()
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред рдпрд╣рд╛рдБ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
const fs = require('fs') fs.stat('/Users/flavio/test.txt', (err, stats) => { if (err) { console.error(err) return } // `stats` })
Node.js рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЧреБрдг рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рддрдХ рдореБрдЦреНрдп рдзрд╛рдЧрд╛ рдЕрд╡рд░реБрджреНрдз рд╣реИ:
const fs = require('fs') try { const stats = fs.statSync ('/Users/flavio/test.txt') } catch (err) { console.error(err) }
рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА
stats
рд╕реНрдерд┐рд░ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдЧреАред рдЗрд╕рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреНрдпрд╛ рд╣реИ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╕реНрддреБ рд╣рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдЧреБрдг рдФрд░ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ:
.isFile()
рдФрд░ .isDirectory()
рд╡рд┐рдзрд┐рдпрд╛рдБ рдХреНрд░рдорд╢рдГ рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЬрд╛рдБрдЪ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдПрдХ рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИред.isSymbolicLink()
рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ .isSymbolicLink()
рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдПрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рд╣реИред- рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рдХреЛ
.size
рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдЕрдиреНрдп рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпреЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИрдВред рдпрд╣рд╛рдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
const fs = require('fs') fs.stat('/Users/flavio/test.txt', (err, stats) => { if (err) { console.error(err) return } stats.isFile() //true stats.isDirectory() //false stats.isSymbolicLink() //false stats.size //1024000 //= 1MB })
Node.js рдФрд░ рдкрде рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдкрде
рдлрд╝рд╛рдЗрд▓ рдкрде рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрд╕ рд╕реНрдерд╛рди рдХрд╛ рдкрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╡рд╣ рд╕реНрдерд┐рдд рд╣реИред
рд▓рд┐рдирдХреНрд╕ рдФрд░ macOS рдкрд░, рдкрде рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
/users/flavio/file.txt
рд╡рд┐рдВрдбреЛрдЬ рдкрд░, рд░рд╛рд╕реНрддреЗ рдереЛрдбрд╝реЗ рдЕрд▓рдЧ рджрд┐рдЦрддреЗ рд╣реИрдВ:
C:\users\flavio\file.txt
рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкрде рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВ рдЕрдВрддрд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ Node.js рд╕рд░реНрд╡рд░ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Node.js рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдкрде рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдорд╛рдирдХ
path
рдореЙрдбреНрдпреВрд▓ рд╣реИред рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
const path = require('path')
InformationрдЧреЗрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдкрде рдЬрд╛рдирдХрд╛рд░реА
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд╛рд╕реНрддрд╛ рд╣реИ, рддреЛ
path
рдореЙрдбреНрдпреВрд▓ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдзрд╛рд░рдгрд╛ рдФрд░ рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рдореЗрдВ, рдЗрд╕ рдкрде рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
const notes = '/users/flavio/notes.txt' path.dirname(notes) // /users/flavio path.basename(notes) // notes.txt path.extname(notes) // .txt
рдпрд╣рд╛рдВ,
notes
рд▓рд╛рдЗрди рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдкрде рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред
path
рдореЙрдбреНрдпреВрд▓ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ
path
рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
dirname()
- рдлрд╝рд╛рдЗрд▓ рдХреА рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИредbasename()
- рдлрд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рджреЗрддрд╛ рд╣реИредextname()
- рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рджреЗрддрд╛ рд╣реИред
рдЖрдк
.basename()
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдмрд┐рдирд╛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рджреВрд╕рд░рд╛ рддрд░реНрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ:
path.basename(notes, path.extname(notes)) //notes
рдлрд╝рд╛рдЗрд▓ рдкрдереЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛
рдкрде рдХреЗ рдХрдИ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
path.join()
рд╡рд┐рдзрд┐:
const name = 'flavio' path.join('/', 'users', name, 'notes.txt') //'/users/flavio/notes.txt'
рдЖрдк рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреВрд░реНрдг рдкрде рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
path.resolve()
рд╡рд┐рдзрд┐:
path.resolve('flavio.txt') //'/Users/flavio/flavio.txt'
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, Node.js рдмрд╕ рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреА
/flavio.txt
рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рд░реНрдЧ рдкрд░
/flavio.txt
рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдпрджрд┐, рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрде рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╡рд┐рдзрд┐ рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ:
path.resolve('tmp', 'flavio.txt') // '/Users/flavio/tmp/flavio.txt'
рдпрджрд┐ рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдорд╛рд░реНрдЧ рд╕реНрд▓реИрд╢ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде рд╣реИред
path.resolve('/etc', 'flavio.txt') // '/etc/flavio.txt'
рдпрд╣рд╛рдБ рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдзрд┐ рд╣реИ -
path.normalize()
ред рдпрд╣ рдЖрдкрдХреЛ рдЙрд╕ рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрде рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдбреЙрдЯ (
.
), рджреЛ рдЕрдВрдХ (
..
), рдпрд╛ рджреЛ рд╕реНрд▓реИрд╢ рдЬреИрд╕реЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдХреНрд╡рд╛рд▓рд┐рдлрд╛рдпрд░ рд╣реЛрддреЗ рд╣реИрдВ:
path.normalize('/users/flavio/..//test.txt')
рдХрд┐рд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП
normalize()
resolve()
рдФрд░
normalize()
рддрд░реАрдХреЗ рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рджрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░рд╛рд╕реНрддрд╛ рдвреВрдВрдврддреЗ рд╣реИрдВред
Node.js рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрдврд╝рдирд╛
Node.js рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛
fs.readFile()
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ (рдпрд╛ рддреНрд░реБрдЯрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ) рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛:
fs.readFile('/Users/flavio/test.txt', (err, data) => { if (err) { console.error(err) return } console.log(data) })
рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдк рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ -
fs.readFileSync()
:
const fs = require('fs') try { const data = fs.readFileSync('/Users/flavio/test.txt') console.log(data) } catch (err) { console.error(err) }
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ,
utf8
рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рддреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреБрдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╡рд┐рдзрд┐ рд╕реЗ рдкрд╛рд╕ рдХрд░рдХреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
fs.readFile()
рдФрд░
fs.readFileSync()
рд╡рд┐рдзрд┐рдпрд╛рдБ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рдВрдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рдкрдврд╝рддреА рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдореЗрдореЛрд░реА рдЦрдкрдд рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдРрд╕реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдзрд╛рд░рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред
Node.js рдХреЛ рдлрд╛рдЗрд▓реЗрдВ рд▓рд┐рдЦрдирд╛
Node.js рдореЗрдВ,
fs.writeFile()
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд┐рдЦрдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╣реИ:
const fs = require('fs') const content = 'Some content!' fs.writeFile('/Users/flavio/test.txt', content, (err) => { if (err) { console.error(err) return }
рдПрдХ рд╣реА рд╡рд┐рдзрд┐ рдХрд╛ рдПрдХ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рднреА рд╣реИ -
fs.writeFileSync()
:
const fs = require('fs') const content = 'Some content!' try { const data = fs.writeFileSync('/Users/flavio/test.txt', content)
рдпреЗ рд╡рд┐рдзрд┐рдпрд╛рдБ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреА рд╣реИрдВред рдЖрдк рдЙрдЪрд┐рдд рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдХреЗ рдорд╛рдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:
fs.writeFile('/Users/flavio/test.txt', content, { flag: 'a+' }, (err) => {})
рдЭрдВрдбреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рд╡рд░рдгрдХрд░реНрддрд╛рдУрдВ рдкрд░ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рд╣реИред рдЭрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг
рдпрд╣рд╛рдБ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВ
fs.appendFile()
рд╡рд┐рдзрд┐ (рдФрд░ рдЗрд╕рдХреЗ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг,
fs.appendFileSync()
) рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
const content = 'Some content!' fs.appendFile('file.log', content, (err) => { if (err) { console.error(err) return } //! })
рдзрд╛рдЧреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдКрдкрд░, рд╣рдордиреЗ рдЙрди рддрд░реАрдХреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдЙрд╕ рдкрд░ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдбреЗрдЯрд╛ рдХреА рдкреВрд░реА рдорд╛рддреНрд░рд╛ рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж, рдпрджрд┐ рдЙрдирдХреЗ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд╡рд╛рдкрд╕ рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдХреЙрд▓рдмреИрдХ рдХрд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рд╕реНрдерд┐рддрд┐ рдЖрдкрдХреЗ рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рд╣реИ, рддреЛ рдзрд╛рд░рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред
Node.js рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛
fs
рдореЙрдбреНрдпреВрд▓ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХрдИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдХреНрдпрд╛ Node.js рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЖрдк
fs.access()
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдирдпрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБ
рдирдП рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк
fs.mkdir()
рдФрд░
fs.mkdirSync()
рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
const fs = require('fs') const folderName = '/Users/flavio/test' try { if (!fs.existsSync(dir)){ fs.mkdirSync(dir) } } catch (err) { console.error(err) }
The рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдХрд┐рд╕реА рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк
fs.readdir()
рдФрд░
fs.readdirSync()
рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ - рдЕрд░реНрдерд╛рдд, рдЗрд╕рдореЗрдВ рдХреМрди рд╕реА рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдЙрдирдХреЗ рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдкрде рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ:
const fs = require('fs') const path = require('path') const folderPath = '/Users/flavio' fs.readdirSync(folderPath)
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдк рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреВрд░рд╛ рд░рд╛рд╕реНрддрд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
fs.readdirSync(folderPath).map(fileName => { return path.join(folderPath, fileName) }
рдкрд░рд┐рдгрд╛рдо рдХреЗрд╡рд▓ рдлрд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЙрддреНрдкрд╛рджрди рд╕реЗ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
const isFile = fileName => { return fs.lstatSync(fileName).isFile() } fs.readdirSync(folderPath).map(fileName => { return path.join(folderPath, fileName)).filter(isFile) }
Folder рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ
рдЖрдк рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП
fs.rename()
рдФрд░
fs.renameSync()
рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд░реНрддрдорд╛рди рдлрд╝реЛрд▓реНрдбрд░ рдкрде рд╣реИ, рджреВрд╕рд░рд╛ рдПрдХ рдирдпрд╛ рд╣реИ:
const fs = require('fs') fs.rename('/Users/flavio', '/Users/roger', (err) => { if (err) { console.error(err) return } // })
рдЖрдк рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд┐рдзрд┐
fs.renameSync()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:
const fs = require('fs') try { fs.renameSync('/Users/flavio', '/Users/roger') } catch (err) { console.error(err) }
тЦН рдлрд╝реЛрд▓реНрдбрд░ рд╣рдЯрд╛рдПрдБ
рдХрд┐рд╕реА рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк
fs.rmdir()
рдпрд╛
fs.rmdirSync()
рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╣рдЯрд╛рдирд╛ рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рд╣реИ рдПрдХ рдЦрд╛рд▓реА рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдп рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдРрд╕реЗ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ
fs-extra рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреЛ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИред рдпрд╣
fs
рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реИ, рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ред
fs-extra
рдкреИрдХреЗрдЬ рд╕реЗ
remove()
рд╡рд┐рдзрд┐ рдЙрди рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреА рд╣реИ рдЬрд┐рдирдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рд╣реИред
рдЖрдк рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
npm install fs-extra
рдпрд╣рд╛рдБ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
const fs = require('fs-extra') const folder = '/Users/flavio' fs.remove(folder, err => { console.error(err) })
рдЗрд╕рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рджреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
fs.remove(folder).then(() => { // }).catch(err => { console.error(err) })
Async / рдкреНрд░рддреАрдХреНрд╖рд┐рдд рдирд┐рд░реНрдорд╛рдг рднреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ:
async function removeFolder(folder) { try { await fs.remove(folder) // } catch (err) { console.error(err) } } const folder = '/Users/flavio' removeFolder(folder)
рдПрдлрдПрд╕ рдореЙрдбреНрдпреВрд▓
рдКрдкрд░, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
fs
рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХреЗ рдкрд╛рд░ рдЖ рдЧрдП рд╣реИрдВ рдЬреЛ рдХрд┐ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕рдореЗрдВ рдХрдИ рдФрд░ рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
const fs = require('fs')
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЙрд╕рдХреА рд╡рд┐рдзрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреА, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ:
fs.access()
: рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдФрд░ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИредfs.appendFile()
: рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ fs.appendFile()
ред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛редfs.chmod()
: рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣ рдХреЗ рддрд░реАрдХреЗ: fs.lchmod()
, fs.fchmod()
редfs.chown()
: рджрд┐рдП рдЧрдП рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рдореА рдФрд░ рд╕рдореВрд╣ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣ рдХреЗ рддрд░реАрдХреЗ: fs.fchown()
, fs.lchown()
редfs.close()
: рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИредfs.copyFile()
: рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИредfs.createReadStream()
: рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреНрд░реАрдо рдмрдирд╛рддрд╛ рд╣реИредfs.createWriteStream()
: рдПрдХ рдлрд╛рдЗрд▓ рд░рд╛рдЗрдЯ рд╕реНрдЯреНрд░реАрдо рдмрдирд╛рддрд╛ рд╣реИредfs.link()
: рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╣рд╛рд░реНрдб рд▓рд┐рдВрдХ рдмрдирд╛рддрд╛ рд╣реИредfs.mkdir()
: рдПрдХ рдирдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рддрд╛ рд╣реИредfs.mkdtemp()
: рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рддрд╛ рд╣реИредfs.open()
: рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рддрд╛ рд╣реИредfs.readdir()
: рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рддрд╛ рд╣реИредfs.readFile()
: рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣ рдХреА рд╡рд┐рдзрд┐: fs.read()
редfs.readlink()
: рдПрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдХрд╛ рдореВрд▓реНрдп рдкрдврд╝рддрд╛ рд╣реИредfs.realpath()
: рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдорд┐рдд рд╕рд╛рдкреЗрдХреНрд╖ рдлрд╝рд╛рдЗрд▓ рдкрде рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ .
рдФрд░ ..
, рдкреВрд░реЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВредfs.rename()
: рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо рдмрджрд▓ рджреЗрддрд╛ рд╣реИредfs.rmdir()
: рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИредfs.stat()
: рд░рд┐рдЯрд░реНрди рдлрд╛рдЗрд▓ рдЬрд╛рдирдХрд╛рд░реАред рдЗрд╕реА рддрд░рд╣ рдХреЗ рддрд░реАрдХреЗ: fs.fstat()
, fs.lstat()
редfs.symlink()
: рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдмрдирд╛рддрд╛ рд╣реИредfs.truncate()
: рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдВрдмрд╛рдИ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ fs.truncate()
ред рдЗрд╕реА рддрд░рд╣ рдХреА рд╡рд┐рдзрд┐: fs.ftruncate()
редfs.unlink()
: рдПрдХ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИредfs.unwatchFile()
: рдлрд╝рд╛рдЗрд▓ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИредfs.utimes()
: рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣ рдХреА рд╡рд┐рдзрд┐: fs.futimes()
редfs.watchFile()
: рдлрд╝рд╛рдЗрд▓ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣ рдХреА рд╡рд┐рдзрд┐: fs.watch()
редfs.writeFile()
: рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЗрд╕реА рддрд░рд╣ рдХреА рд╡рд┐рдзрд┐: fs.write()
ред
fs
рдореЙрдбреНрдпреВрд▓ рдХреА рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рднреА рддрд░реАрдХреЗ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╕рдВрд╕реНрдХрд░рдг рднреА рд╣реИрдВ, рдЬрд┐рдирдХреЗ рдирд╛рдо рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдореЗрдВ
Sync
рд╢рдмреНрдж рдЬреЛрдбрд╝рдХрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
fs.rename()
fs.renameSync()
fs.write()
fs.writeSync()
рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
Node.js 10 рдЗрди рд╡рд╛рджреЛрдВ-рдЖрдзрд╛рд░рд┐рдд рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
fs.rename()
рд╡рд┐рдзрд┐ рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВред рдпрд╣рд╛рдВ рдХреЙрд▓рдмреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ:
const fs = require('fs') fs.rename('before.json', 'after.json', (err) => { if (err) { return console.error(err) } // })
рдЗрд╕рдХреЗ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░рд╛рдЗ
try/catch
рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
const fs = require('fs') try { fs.renameSync('before.json', 'after.json')
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмреАрдЪ рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдСрдкрд░реЗрд╢рди рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрд╡рд░реБрджреНрдз рд╣реЛ рдЬрд╛рдПрдЧреАред
рдкрде рдореЙрдбреНрдпреВрд▓
рдкрде рдореЙрдбреНрдпреВрд▓, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдордиреЗ рдЗрд╕рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдмрд╛рдд рдХреА рд╣реИ, рдЗрд╕рдореЗрдВ рдХрдИ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ Node.js. рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
const path = require('path')
рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛
path.sep
рдЧреБрдг рдкрде рдкрде рдЦрдВрдбреЛрдВ (Windows рдФрд░
/
рдФрд░ рд▓рд┐рдирдХреНрд╕ рдФрд░
path.delimiter
) рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЪрд░рд┐рддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдФрд░
path.delimiter
рдЧреБрдг рдЪрд░рд┐рддреНрд░ рдХреЛ рдХрдИ рдкрдереЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (
;
рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдФрд░
:
Linux рдкрд░
;
рдФрд░ macOS)ред
рдЖрдЗрдП рд╣рдо
path
рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХреБрдЫ рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдФрд░ рд╡рд░реНрдгрди рдХрд░реЗрдВред
Bpath.basename ()
рд░рд╛рд╕реНрддреЗ рдХрд╛ рдЖрдЦрд┐рд░реА рдЯреБрдХрдбрд╝рд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рдХреЗ, рдЖрдк рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред
require('path').basename('/test/something') //something require('path').basename('/test/something.txt') //something.txt require('path').basename('/test/something.txt', '.txt') //something
тЦНpath.dirname ()
рдкрде рдХрд╛ рд╡рд╣ рднрд╛рдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдо рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ:
require('path').dirname('/test/something') // /test require('path').dirname('/test/something/file.txt') // /test/something
тЦНpath.extname ()
рдкрде рдХрд╛ рд╡рд╣ рднрд╛рдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ:
require('path').extname('/test/something') // '' require('path').extname('/test/something/file.txt') // '.txt'
тЦНpath.isAbsolute ()
рдпрджрд┐ рдорд╛рд░реНрдЧ рдирд┐рд░рдкреЗрдХреНрд╖ рд╣реИ рддреЛ рд╕рд╣реА рд╣реИ:
require('path').isAbsolute('/test/something') // true require('path').isAbsolute('./test/something') // false
тЦНpath.join ()
рдкрде рдХреЗ рдХрдИ рднрд╛рдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ:
const name = 'flavio' require('path').join('/', 'users', name, 'notes.txt') //'/users/flavio/notes.txt'
тЦНpath.normalize ()
рдЙрд╕ рдкрде рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрде рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЬрд┐рд╕рдореЗрдВ рдРрд╕реЗ рдкрд╛рддреНрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
.
, рдФрд░
//
:
require('path').normalize('/users/flavio/..//test.txt')
тЦНpath.parse ()
рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рдХреЛ рд░рд╛рд╕реНрддрд╛ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдЧреБрдг рдкрде рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ:
root
: рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛редdir
: рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдлрд╝рд╛рдЗрд▓ рдкрдеbase
: рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рдиредname
: рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдоредext
: рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рдиред
рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
require('path').parse('/users/test.txt')
рдЙрдирдХреЗ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд╕реНрддреБ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИ:
{ root: '/', dir: '/users', base: 'test.txt', ext: '.txt', name: 'test' }
тЦНpath.relative ()
рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ, 2 рддрд░реАрдХреЗред рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкрд╣рд▓реЗ рдкрде рд╕реЗ рджреВрд╕рд░реЗ рдкрде рдкрд░ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рд▓реМрдЯрд╛рддрд╛ рд╣реИ:
require('path').relative('/Users/flavio', '/Users/flavio/test.txt') //'test.txt' require('path').relative('/Users/flavio', '/Users/flavio/something/test.txt') //'something/test.txt'
тЦНpath.resolve ()
рдЗрд╕рдореЗрдВ рджрд┐рдП рдЧрдП рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде рдвреВрдБрдврддрд╛ рд╣реИ:
path.resolve('flavio.txt') //'/Users/flavio/flavio.txt' .
рдкрд░рд┐рдгрд╛рдо
рдЖрдЬ рд╣рдордиреЗ Node.js
fs
рдФрд░
path
рдореЙрдбреНрдпреВрд▓ рдХреЛ рджреЗрдЦрд╛, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рдЬрд┐рд╕ рдкрд░ рдпрд╣ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рд╣рдо
os
,
events
,
http
рдореЙрдбреНрдпреВрд▓ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗ, рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ Node.js. рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдеред
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! Node.js рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЖрдк рдХрд┐рд╕ npm рд╕рдВрдХреБрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?
