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

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

(21개의 수강평)

469명의 수강생

55,000원

조현영
평생
초급
145개 수업, 총 23시간 14분
위시리스트 추가
hsjo12 프로필

질문이요 hsjo12 9시간 전

실무에서 pug 나 ejs 를 html 대신에 권장을 하나요?? 

아니면, express에서 html을 못 쓰나요?? 

기존의 html이 아닌 다른 엔진을 써야하는지가 궁금하네요

1
hsjo12 프로필

간단한 질문이요 hsjo12 9시간 전

test 퍼그에서 uselay퍼그라는 링크를 만들어서 이동 시키고 싶은데요. 

이런식으로 만들었는데, 링크는 되는데, 

./uselay 라는 퍼그로 안가는데, 링크주소를 어떻게 줘야하나요.. 

uselay.pug와 test.pug 같은 폴더안에있어요. 

a(class='button' href='./uselay') uselay
 

1
김다롬 프로필

nodebird 게시글 삭제 김다롬 12시간 전

'게시글 삭제'를 누르면 Post 객체안의 내용도 변하고 잘 작동을 하지만 mysql 워크벤치를 확인해보면 그대로 있습니다.

await Post.destroy({ where: { id: req.params.id, userId: req.user.id } });

destroy를 실행하면 mysql 안에 있는 정보도 같이 없어질 거라 생각했는데 아니더라고요.

 

업데이트와 삭제에 관해서만 sequelize와 mysql이 이런식으로 분리되어(?) 작동하는 건가요?

1
김다롬 프로필

nodebird 해시태그로 검색하기 김다롬 13시간 전

이전에는 해시태그로 검색하기가 잘 작동했는데요

 

'좋아요, 좋아요 취소' 를 구현한 이후로 해쉬태그 검색을 해보니 아래와 같은 에러가 발생합니다.

다시 문제되는 문장을 지우고 실행하면 잘 작동합니다.

Cannot read property 'map' of undefined

Liker가 계속 undefined여서 발생하는 문제같아서 page.js 에서 res.render 하기 전에

// console.log(posts);
posts.Liker = 0;
console.log(posts.Liker);

이런 식으로 정수로도 넣어보고 객체형태로도 넣어봤는데 문자열들어가듯이 들어가더라고요..
초기화를 어떤 식으로 해야되는 걸까요?

 

구글링해보면 react에서 this.setstate 로 해결하던데 지금 상황에서는 초기화방법을 모르겠습니다...

ㅜㅜ 제 스스로 알아내고 싶었는데 죄송합니다.. 힌트라도 주심 감사하겠습니다!

코드는 제로초님이 작성하신 코드와 같습니다.

1
dlaxodud1217 프로필

10장 sns 질문입니다. dlaxodud1217 1일 전

시퀄라이즈에서 이런 오류가 발생하는데 어디서 잘못된거죠..?

4
hsjo12 프로필

질문이요 hsjo12 2일 전

-- save-dev가 개발할때만 쓰고, 배포시는 안된다고 하셨는데, 

막상 배포를 하면, 그 개발할때 쓴 패키지가 없으니 에러가 나지 않나요?? 

 

어떨때 쓰는지 예시좀 들어주실수있나요? 

1
JY C 프로필

Promise 에 resolve, error질문 JY C 4일 전

안녕하세요
조선생님 무더운 날씨에 고생이 많으십니다

Promise에 resolve와 error를 인수로 함수를 넣는데

Q1. resolve와 reject이라는 인수명은 고정인가요? 아니면 다른 이벤트 핸들러처럼 r, e라는 식으로 제 맘대로 써도 될까요?

Q2. Promise안에 (resolve, reject) => 에서 resolve와 reject 인수가 두개있는데 이것을 한개만 써도 될까요?
(예를들어 무조건 error로 처리하거나 resolve로 처리하는경우)
아니면 반드시 두개써야되나요?

Q3. 하나만 써도 되는 경우라면
resolve인지 reject인지 구분을 어떻게 하나요? 만약 Q1에서 인수명이 고정이라면 상관없겟지만, 고정이 아니라면 어떻게 구분하는지
궁금합니다.

항상 감사합니다!

1
hsjo12 프로필

질문이요 . hsjo12 6일 전

한가지 궁금한게 있는데요, node restServer 해서 실행 하잖아요, 이럴경우, restFront.js console.log()를 여러개 넣어서 어떻게 진행되는지 보고 싶었는데 , restServer.js를 돌려서 그런지 아예 restFront.js에서는 로그 조차도 안찍히더라구요. 이렇경우는 로그를 아예 볼 수 없는건가요//?

1
hsjo12 프로필

질문이요 hsjo12 8일 전

 
else if (req.method === 'PUT') { //수정시 사용
 
if (req.url.startsWith('/users/')) {
const key = req.url.split('/')[2];
let body = '';
req.on('data', (data) => {
body += data;
});
return req.on('end', () => {
console.log('PUT 본문(Body):', body);
users[key] = JSON.parse(body).name;
return res.end(JSON.stringify(users));
});
}
}

 

코드는 이해가 가는데요 

좀 헷갈리는게, req.url 을 console.log 로 찍으면  /users/1563155680461 이렇게 나왔는데요. 

 

왜 url 창에는 그냥http://localhost:8085/ 만 나올까요 ?

 

이런식으로 나와야하는거아닌가요 ? 

http://localhost:8085/users/1563155680461 ?? 

헷갈리네요..

users/1563155680461 이게 지금 쿠키에 저장된건가요..? 

1
hsjo12 프로필

질문이요 hsjo12 8일 전

return fs.readFile(`.${req.url}`, (err, data) => {
if (err) {
res.writeHead(404, 'NOT FOUND');
return res.end('NOT FOUND');
}
return res.end(data);
});
 

 

 

`.${req.url}`

에서 ${} 이거는 언제 쓰는건가여??? 이게 무슨뜻이예요? 

 

 

 

1
hsjo12 프로필

프론트 쪽 질문 hsjo12 8일 전

프론트 쪽 잘 이해가 안가는데요, 무엇을 공부해서 보충하여야 하나요??? 

 

강의중에 나중에 익스프레스를 써서 하신다고 하셨는데, 지금 배우는 내용하고 많이 달라지는건가요? 

1
hsjo12 프로필

질문이요 hsjo12 9일 전

sever2.on('listening',()=>{
console.log("8080번 포트에서 서버 대기중입니다. ")
});

sever2.on('error', (error) =>{
console.log("error : ", error) // 에러 출력
})

이벤트에서는 emit을 해주면서, 이벤트를 실행 시카잖아요. 

 

서버에서는 그런거 필요없이 에러나면 , 그냥 에러가 저절로 처리 되는건가요...? 

그러면, 이름자체가 이미 지정이 되어있는건가요?

 

만약에 그렇다면, 

이렇게 서버에 이벤트를 저만에 특별한 이벤트를  붙여줄때는 

어떤식으로 작동하게 만드나요? ??

 

 

1
hsjo12 프로필

간단한 질문이요 . hsjo12 9일 전

http.createServer( (req,res) => {
console.log('서버 실행')

 
res.write('<h1> Hello NodeJS!</h1>')
res.write('<h2> Hello NodeJS!</h2>')
res.write('<h3> Hello NodeJS!</h3>')
res.end('<h1> Hello Node!</h1>')
}). listen(8080,()=>{
console.log("8080번 포트에서 서버 대기중입니다. ")

그냥 개인적으로 궁금해서 그러는데요. 

 

서버를 열고나서, localhost:8080 해서 들어가면, 

console.log('서버 실행') 이게 두번이나 찍히는데 

혹시 왜 그런지 아시나요.?? 

 

들어 갈때마다 두번씩 계속 찍히더라구요.. 왜 2 번일가요...? 

 

그리고 이 노드서버를 끝내기위해 컨트로 + C 두번 눌러서 끄는데요, 그다음에 같은 포트를 시작하려고 하면 

계속 이런식으로 에러가 뜨는데 

error :  Error: listen EADDRINUSE: address already in use :::8081

제대로 서버 닫는 법이 있을까요 ?? ?

 

 

 

 

 

 

 

 

 

1
hsjo12 프로필

간단한 질문 좀 드려도 될까요 ? hsjo12 10일 전

궁금한게 있는데요. 

스트림을 따로 써줘야 할 이유가 있나요 ?

fs.write 이 있는데 굳이 stream 을 써줘야 할 이유가 있나요 ? ??? 

알려주시면 감사합니다... 

 

1
hsjo12 프로필

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

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

 

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

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

 

3