방명록
- [개인] 카스 전자 저울 연동 Packing List 자동 생성 프로그램 #7 | Node.js의 fs 모듈을 이용한 고객사 정보 영속적 관리2022년 05월 27일 17시 09분 52초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
| 이슈
file-saver를 이용해 고객사 정보를 영속적으로 관리하는 방법을 적용했으나 데이터의 추가, 삭제가 일어날 때마다 뜨는 탐색기를 조작해야만 된다는 번거로움 때문에 고민이 많았다. 서버 없이 웹으로만 만들어 보고 싶었는데 fs 모듈을 사용하기 위해 결국 Node.js를 사용하게 되었다.
Node.js에서 SQlite를 쓰는 것도 생각해 봤었는데, 로컬에서 json 파일을 다루는 정도라면 내장 모듈인 fs로도 충분할 것 같았다.
Node.js와 함께 사용한 모듈은 express, fs, cors이다. Vue.js에서는 서버 통신을 하기 위해 axios 모듈을 import 했다. Vue.js component에는 아래와 같이 methods를 추가했다.
async getCustomersServer() { this.customers = await this.$get('/customers') }, async postCustomersServer() { await this.$post('/customers', this.customers) }
위 코드는 아래와 같이 mixin으로 정의된 $get, $post를 이용한다.
async $get(url) { return ( await axios.get(url).catch((e) => { console.log(e) }) ).data }, async $post(url, data) { return await axios.post(url, data).catch((e) => { console.log(e) }) },
Node.js에서는 아래 코드와 같이 get, post 함수를 정의하였는데, fs로-고객사 정보가 담겨있는-customers.json 파일을 다루도록 하였다. get 함수는 고객사 정보를 가져오는 것을, post 함수는 고객사 추가 및 삭제를 담당한다.
app.get('/customers', (req, res) => { const customers = fs.readFileSync('./data/customers.json', 'utf-8') res.send(customers) }) app.post('/customers', (req, res) => { fs.writeFile( './data/customers.json', JSON.stringify(req.body), 'utf8', (err) => { if (err) { throw err } } ) res.send('Ok') })
| 다음 단계
Node.js를 사용함으로 인해 고객사 정보를 영속적으로 관리하는 문제가 수월하게 해결되었다. mdb-reader 모듈도 Node.js에서 활용 가능하니 프로그램 실행시 카스 전자저울의 mdb 데이터를 자동으로 읽어오는 기능을 추가하고 이번 개인 프로젝트는 끝맺고자 한다.
728x90반응형'프로젝트 > [개인] Auto Packing List Manager' 카테고리의 다른 글
다음글이 없습니다.이전글이 없습니다.댓글