control
+ backtick
: VS code에서 터미널 창 열기
node
: Node.JS 시작하기
control
+ d
: 명령어 입력줄 소환하기
command
+ k
: 터미널 화면 clear out 하기 (화면에 너무 많은 것들이 있을 때)
_
: 직전의 연산결과.
tab
(혹은 더블탭) : Node.JS의 모든 global variable 들을 한눈에 보기
Native 함수
+ tab
(혹은 더블탭): 해당 네이티브 함수의 모든 내장 메소드들을 한눈에 보기
node
+ 파일명
: 파일 실행해서 console 결과 출력하기
'fs'는 file system의 약자.
require('fs');
로 빌트인 fs 모듈(객체)을 가져올 수 있다.
파일시스템의 메소드로 적절한 데이터를 읽거나 쓰는데에 필요.
Node.JS File System Documentation 보기
//ex.
const fs = require('fs');
fs.readFileSync(파일경로 [, 'utf-8(options)', 콜백함수(option)])
다른 파일에서 내용 읽어오기. 동기로 실행된다. (Blocking)
보통 콜백함수의 첫번째 인자는err
, 두번째 인자는읽어올 데이터
가 된다. (ex. (err, data) => {})
readFileSync Documentation 보기↔️ fs.readFile() 은 비동기로 실행된다. (Non-blocking)
//ex. input.txt 파일에서 텍스트 가져오기
const fs = require('fs');
const textIn = fs.readFileSync('starter/txt/input.txt', 'utf-8');
console.log(textIn);
//ex. '비동기'로 start.txt 파일에서 텍스트 가져오기
fs.readFile('starter/txt/start.txt', 'utf-8', (err, data1) => {
});
<console에 input.txt 텍스트 내용이 출력된 모습>
fs.writeFileSync(파일경로, 추가데이터[, 'utf-8(options)', 콜백함수(option)])
다른 파일에 내용 추가하기. 동기로 실행된다. (Blocking)
보통 콜백함수의 첫번째 인자는err
가 된다. (ex. err => {})
wrtieFileSync Documentation 보기↔️ fs.writeFile() 은 비동기로 실행된다. (Non-blocking)
//ex. output.txt 파일에 텍스트 추가하기
const textOut = `This is what we know about the abocado : ${textIn}.\n Created on ${Date.now()}`;
fs.writeFileSync('starter/txt/output.txt', textOut);
console.log('File written!');
//ex. '비동기'로 final.txt 파일에 텍스트 추가하기. 두번째 인자는 추가하고 싶은 내용.
fs.writeFile('starter/txt.final.txt', `${data2}\n${data3}`, 'utf-8', err => {
//여기서 호출하는 콜백함수는 읽어올 데이터가 없기 때문에 err 인자 하나만 받으면 된다. final.txt파일에 텍스트가 추가된 후에 콜백함수가 호출된다.
})
<console에 출력된 모습>
<output.txt에 내용이 추가된 모습>