Node.js를 사용하여 파일 쓰기
파일 쓰기
Node.js에서 파일에 쓰는 가장 쉬운 방법은 fs.writeFile()
API를 사용하는 것입니다.
javascript
const fs = require('node:fs')
const content = 'Some content!'
fs.writeFile('/Users/joe/test.txt', content, err => {
if (err) {
console.error(err)
} else {
// file written successfully
}
})
동기식으로 파일 쓰기
또는 동기 버전 fs.writeFileSync
를 사용할 수 있습니다.
javascript
const fs = require('node:fs')
const content = 'Some content!'
try {
fs.writeFileSync('/Users/joe/test.txt', content)
} catch (err) {
console.error(err)
}
fs/promises
모듈에서 제공하는 프로미스 기반 fsPromises.writeFile()
메서드를 사용할 수도 있습니다.
javascript
const fs = require('node:fs/promises')
async function example() {
try {
const content = 'Some content!'
await fs.writeFile('/Users/joe/test.txt', content)
} catch (err) {
console.log(err)
}
}
example()
기본적으로 이 API는 파일이 이미 있는 경우 해당 파일의 내용을 바꿉니다.
플래그를 지정하여 기본값을 수정할 수 있습니다.
javascript
fs.writeFile('/Users/joe/test.txt', content, { flag: 'a+' }, err => [])
자주 사용하게 될 플래그는 다음과 같습니다.
플래그 | 설명 | 파일이 없으면 생성됩니까 |
---|---|---|
r+ | 이 플래그는 읽기 및 쓰기를 위해 파일을 엽니다. | ❌ |
w+ | 이 플래그는 읽기 및 쓰기를 위해 파일을 열고 파일 시작 부분에 스트림을 배치합니다. | ✅ |
a | 이 플래그는 쓰기를 위해 파일을 열고 파일 끝에 스트림을 배치합니다. | ✅ |
a+ | 이 스트림은 읽기 및 쓰기를 위해 파일을 열고 파일 끝에 스트림을 배치합니다. | ✅ |
플래그에 대한 자세한 내용은 fs 설명서에서 확인할 수 있습니다.
파일에 콘텐츠 추가
파일에 추가하는 것은 파일 내용을 새 내용으로 덮어쓰지 않고 추가하려는 경우에 유용합니다.
예시
파일 끝에 내용을 추가하는 편리한 방법은 fs.appendFile()
(및 해당 fs.appendFileSync()
대응)입니다.
javascript
const fs = require('node:fs')
const content = 'Some content!'
fs.appendFile('file_log', content, err => {
if (err) {
console.error(err)
} else {
// 완료!
}
})
Promise를 사용한 예시
다음은 fsPromises.appendFile()
예시입니다.
javascript
const fs = require('node:fs/promises')
async function example() {
try {
const content = 'Some content!'
await fs.appendFile('/Users/joe/test.txt', content)
} catch (err) {
console.log(err)
}
}
example()