wifi

node js 파일 오픈 에러(ECONNABORTED)

진아사랑해 2023. 10. 10. 16:44
반응형

개요

node js에서 express 모듈을 사용하는 중에 이상한 현상이 발생하였습니다.

파일을 다운로드하기 위해 파일에 접근만 하면 

Problem on download example.bin:  Error: Request aborted
    at onaborted (/home/hgwc/OTAServer/OTAServer/node_modules/express/lib/response.js:1052:15)
    at onfinish (/home/hgwc/OTAServer/OTAServer/node_modules/express/lib/response.js:1088:50)
    at AsyncResource.runInAsyncScope (async_hooks.js:190:9)
    at listener (/home/hgwc/OTAServer/OTAServer/node_modules/on-finished/index.js:170:15)
    at onFinish (/home/hgwc/OTAServer/OTAServer/node_modules/on-finished/index.js:101:5)
    at callback (/home/hgwc/OTAServer/OTAServer/node_modules/ee-first/index.js:55:10)
    at TLSSocket.onevent (/home/hgwc/OTAServer/OTAServer/node_modules/ee-first/index.js:93:5)
    at TLSSocket.emit (events.js:326:22)
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3) {
  code: 'ECONNABORTED'

위 같은 에러가 발생하였습니다.

에러가 발생하는 코드

app.get('/example.bin', (request, response) => {
{
 response.status(200).download(path.join(__dirname, 'firmware/example.bin'), 'example.bin', (err)=>{
         if (err) {
             console.error("Problem on download example.bin: ", err)
         }else{
             downloadCounter++;
         }
 response.end();  
     });
        console.log('Your example.bin file has been downloaded '+downloadCounter+' times!')
});

에러가 없는 코드

var fs = require('fs');

app.get('/signed_light_example.bin', (request, response) => {
{
 fs.readFile(path.join(__dirname, 'firmware/example.bin'), function(error, data){
         if (error) {
             console.error("Problem on download example.bin: ", error)
         }else{
 response.end(data);
             downloadCounter++;
         }
     });
        console.log('Your example.bin file has been downloaded '+downloadCounter+' times!')
});

이유는 잘 모르겠습니다.

참고로 hex 파일의 시작을 추가하였습니다.

파일은 .bin으로 바이너리 파일입니다.

 

반응형