안녕하세요. 혀코입니다.
오늘은 Node.js에서 JSON 데이터를 추가하는 방법에 대해서 알아보겠습니다.
app.js 를 다음과 같이 작성합니다.
const yargs = require('yargs')
const notes = require('./notes.js')
// Customize yargs version
yargs.version('1.1.0')
// Create add command
yargs.command({
command: 'add',
describe: 'Add a new note',
builder: {
title: {
describe: 'Note title',
demandOption: true,
type: 'string'
},
body: {
describe: 'Note body',
demandOption: true,
type: 'string'
}
},
handler: function (argv) {
notes.addNote(argv.title, argv.body)
}
})
yargs.command({
command: 'remove',
describe: 'Remove a thing',
handler: function() {
console.log('Removing the thing')
}
})
yargs.command({
command: 'list',
describe: 'List a thing',
handler: function() {
console.log('Listing the thing')
}
})
yargs.command({
command: 'read',
describe: 'Read a thing',
handler: function() {
console.log('Reading the thing')
}
})
yargs.parse()
notes.js 를 다음과 같이 작성합니다.
const fs = require('fs')
const getNotes = function () {
return 'Your notes...'
}
const addNote = function (title, body) {
const notes = loadNotes()
const duplicateNotes = notes.filter(function(note){
return note.title === title
})
if (duplicateNotes.length === 0) {
notes.push({
title: title,
body: body
})
saveNote(notes)
console.log('New note added!')
} else {
console.log('Note title taken')
}
}
const saveNote = function (notes) {
const dataJSON = JSON.stringify(notes)
fs.writeFileSync('notes.json',dataJSON)
}
const loadNotes = function () {
try {
const dataBuffer = fs.readFileSync('notes.json')
const dataJSON = dataBuffer.toString()
return JSON.parse(dataJSON)
} catch (e) {
return []
}
}
module.exports = {
getNotes: getNotes,
addNote: addNote
}
이렇게 작성한 다음, 다음 명령어를 실행해서 확인해 보겠습니다.
$ node app.js add --title="today" --body="today is the day"
그러면, 다음과 같이 notes.json 파일이 생성된 것을 확인할 수 있습니다.
[{"title":"today","body":"today is the day"}]
동일한 명령어로 재실행을 한다면, title 값이 동일하기 때문에 'Note title taken'이라고 표시 되고 json 파일은 업데이트 되지 않은 것을 확인할 수 있습니다.
이렇게 Node.js에서 JSON 데이터를 추가하는 방법에 대해서 알아보았습니다.
유용하셨다면, 공감과 구독 부탁 드립니다.
감사합니다.
댓글