December 21, 2020
node.js : λΉλκΈ° μ΄λ²€νΈ κΈ°λ° μλ°μ€ν¬λ¦½νΈ λ°νμ
λΈλΌμ°μ μμλ μ νμμμ λ± λΉλκΈ° api κ° νμ μ μ΄λΌ νλ©΄, node.js νκ²½μμλ λ§μ λΆλΆμ api κ° λΉλκΈ°λ‘ μμ±λμ΄ μλ€κ³ νλ€.
건μΆμΌλ‘λΆν° λΉλ‘―λ λͺ¨λμ΄λΌλ λ¨μ΄λ, μ΄λ€ κΈ°λ₯μ λΌμ 쑰립ν μ μλ ννλ‘ λ§λ λΆλΆμ λλ€.
fs(File System) λͺ¨λμ, νμΌμ μ½κ±°λ μ μ₯νλ λ±μ μΌμ ν μ μκ² λλ node.jsμ ν λΆλΆμ λλ€.
μλ λ§ν¬μμ FileSystem μ λλ¬λ³΄λ©΄,
https://nodejs.org/dist/latest-v12.x/docs/api/
fs.readFile(path[, options], callback)
λΌλ nodejs μ λ΄μ₯ν¨μλ₯Ό μ°λ κ΅¬λ¬Έμ΄ λμ¨λ€.
νμΌμ μ½λ (readFile) node.js μ λ΄μ₯ν¨μ μ΄λ€.
μλ°μ€ν¬λ¦½νΈ μ½λ κ°μ₯ μλ¨μ require ꡬ문μ μ΄μ©νλ€. How?
const fs = require(βfsβ) // νμΌ μμ€ν λͺ¨λμ λΆλ¬μ΅λλ€
μ΄? μ λ μ΄λ¬μ΄λ¬ν λͺ¨λμ μ°κ³ μΆμλ° node.js μλ μλ λ³Έλ°μ?
κ·Έλ΄ λ npm, yarn κ°μ ν¨ν€μ§ 맀λμ μμ μμμ μ°Ύμ λͺ¨λμ λ€μ΄λ°μΌμΈμ.
컀μ€ν λͺ¨λμ λ§νλ ꡬλ!
fs.readFile(path[, options], callback)
fs.readFile μ΄λΌλ λͺ¨λμ λ‘컬 νμΌμ μ½μ΄μ€λ λ©μλ μ΄λ€. λν λΉλκΈ° μ μΌλ‘ νμΌ λ΄μ© μ 체λ₯Ό μ½μ΄λ€μΈλ€κ³ νλ€.
path <string> | <Buffer> | <URL> | <integer>
첫λ²μ§Έ μΈμμΈ path μλ μμ κ°μ΄ λ€κ°μ§ μ’ λ₯μ νμ μ λκΈΈ μ μλ€. 보ν΅μ λ¬Έμμ΄λ‘ λκΈ΄λ€κ³ νλ€.fs.readFile(β/etc/passwdβ, β¦, β¦)
options <Object> | <string>
λλ²μ§Έ μΈμ options λ λ£μ μλ μλ£μ μλ μλ€. λκ΄νΈλ μ νμ μΈμλ₯Ό μλ―Έν¨.
μμ κ°μ΄ κ°μ²΄ νν λλ λ¬Έμμ΄ ννλ‘ λκΈΈ μ μλ€.
λ¬Έμμ΄λ‘ λ£μ κ²½μ°μλ μΈμ½λ©μΈ βutf-8β μ λκΈ°κ² λλ€.
μΈμλ‘ λ€μ΄μ€λ νμ μ,
err <Error>
data <string> | <Buffer>
νμΌμ μ½κ³ λ λ€μ λΉλκΈ°μ μΌλ‘ μ€νλλ ν¨μμΈ μ½λ°± ν¨μλ₯Ό λκΈ΄λ€.
μ½λ°± ν¨μμλ λ κ°μ§ νλΌλ―Έν°κ° μ‘΄μ¬νλ€. μμ κ°μ΄ err, data μ΄λ€.
λ³΄ν΅ μΈμμ 첫λ²μ§Έμ err κ° μ¨λ€κ³ νλ€.
μλ¬κ° λ°μνμ§ μμΌλ©΄ err λ null μ΄ λλ©° data μ λ¬Έμμ΄μ΄λ Buffer λΌλ κ°μ²΄κ° μ λ¬λ κ²μ΄λ€.
Q. data μλ λ¬Έμμ΄μ΄λ Buffer κ° μ λ¬λ©λλ€. μ΄λ€ κ²½μ°μ λ¬Έμμ΄λ‘ μ λ¬λλ κ²μΌκΉμ?
fs.readFile μ λλ²μ§Έ options μΈμμ βutf-8β μ΄λΌλ μΈμ½λ©μ λͺ κΈ°ν΄ μ£Όμμ λ?? μλλΌλ©΄ Buffer κ° μ λ¬λ κ²μ΄λ€.
Buffer μ ννλ μλμ κ°λ€.
<Buffer ec bd 94 eb 93 9c ed 85 8c ec 9d b4 ec 8a a4 ed 8a b8 20 ec a0 9c eb 8f 84 eb 8a 94 20 ec 97 86 eb 82 98 ec 9a 94 3f 20 e3 85 a0 e3 85 a0 20 ec 8b 9d ... 36 more bytes>