inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Node.js 교과서 - 기본부터 프로젝트 실습까지

fs 모듈(동기와 비동기)

이 코드좀 봐주실수 있나요... 왜 에러가 났는지 모르겠네요 ..

2435

D_One

작성한 질문수 92

0

const util = require('util')
fs.readFile('./text.txt', (err,data) => {
if(err){
throw err;
}
console.log("_______________________________________________________________________________________________________________________");
console.log(" promisefy 시작");
console.log("1 번 ",data.toString());

}
)
const num1 = util.promisify(fs.readFile);

fs.readFile('./text.txt', (err,data) => {
if(err){
throw err;
}
console.log("2 번 ",data.toString());

})
const num2 = util.promisify(fs.readFile)

fs.readFile('./text.txt', (err,data) => {
if(err){
throw err;
}
console.log("3 번 ",data.toString());
console.log("끝");
console.log("_______________________________________________________________________________________________________________________");
 

})

const num3 = util.promisify(fs.readFile)


num1()
.then ((msg) =>{
console.log(msg)
return num2()
})
.then((msg)=>
{
console.log(msg)
return num3()
})
.then((msg)=>
{
console.log(msg)
 
})
.catch((err)=>{
console.log(err)
})

async function z4() {
try{
console.log('async 시작!!!')
const fs1 = await num1()
console.log(fs1)
const fs2 = await num2()
console.log(fs2)
const fs3 = await num3()
console.log(fs3)
}catch(err){
console.error(err)
}

}
z4()

 

promisify로  잘 작동은 하는데요 ..

 

문제는 async 을 돌리면 에러가 뜨더라구요 

TypeError [ERR_INVALID_CALLBACK]: Callback must be a function. Received undefined

 

뜨는데 왜그런지 잘 모르겠네요... 

도와주시면 감사하겠습니다... 

 

mysql nodejs javascript mongodb

답변 3

0

제로초(조현영)

모든 함수를 다 promisify에 넣을순 있습니다. 하지만 인수로 (err, result) 함수를 넣는 fs.readFile같은 것만 제대로 동작합니다.

const readFile = util.promisify(fs.readFile) 이 맞습니다.

 

readFile(경로).then

0

D_One

감사합니다, 

 

제 코드에 문제가 있는거 같은데요 

 

const util = require('util')
fs.readFile('./text.txt', (err,data) => {
if(err){
throw err;
}
console.log("_______________________________________________________________________________________________________________________");
console.log(" promisefy 시작");
console.log("1 번 ",data.toString());

}
)
const num1 = util.promisify(fs.readFile);

 

이 부분이요, fs.readFile을 실행하면 console.log 도 찍혀서 , 

const a = fs.readFile('./text.txt', (err,data) => {
if(err){
throw err;
}
console.log("_______________________________________________________________________________________________________________________");
console.log(" promisefy 시작");
console.log("1 번 ",data.toString());

}
)

이런식으로 a 를 넣어도, console 자제차 실행이 되더라구요

const num1 = util.promisify(a);

그리고 이런식으로 정의하니까 에러가 나기도 하구요... 

혹시 어떻게하면 깔끔하게 할 수 있는지 알 수있는지 있으시간요,.? 

0

제로초(조현영)

num1, num2, num3에 파일 경로 넣어주셔야 합니다. './text.js'같은 거요

실제 서비스에서도 cluster를 사용하나요?

1

314

2

캐싱에 관하여

0

279

3

salt를 실무에서 사용할때 항상 randomBytes로 만들어줘야 하나요?

0

347

1

게시물 올리기 오류

0

408

1

캐슁 이후 로그인창

0

266

1

kakao passport 질문있습니다.

0

493

3

global객체 공유 질문드립니다.

1

418

1

서버가 죽어버리네요

0

1047

8

포링키 문제..

0

235

2

커넥션 플래시 설치문제

0

216

2

익스프레스 제너레이터? 설치문제

0

2586

6

redis 질문입니다.

0

305

1

9장 세션을 DB에 저장시 리다이렉션 오류 발생

0

874

8

프레임워크 선택에 관하여 질문이 있습니다.

0

300

3

시퀄라이즈 질문입니다 ! !

0

588

1

리뉴얼 강의 12강 socket.io에서 req.session접근 관련 질문

0

922

6

oAuth 질문입니다.

0

356

3

GCP 질문입니다.

0

366

1

Passport 모듈 로그인 구현관련

0

720

6

카카오 로그인 관련 질문입니다!!

0

606

4

스스로 해보기 10-16 nunjuncks 질문있습니다

0

499

5

제로초님 HTTP 완벽가이드 추천해주신거 너무 잘 읽었습니다.

0

317

2

gif채팅방 nunjucks관련 질문입니다!

0

338

3

현영님 몽고db관련 질문입니다.

0

233

3