수강이 제한됩니다.
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
addFollowings쪽 문법이 궁금한데 어디서 찾아볼 수 있나요?
as 쪽에서 정의된 이름으로 뒤에 s를 붙이면 배열로 받아서 할 수 있고 as로 정의된 이름 앞에 add나 set을 붙여서 crud를 구현하는 것같은데 맞나요?그럼 Followings.update({ id : req.params.id })이런 식으로 바꿔서 사용할 수 있는 건가요?그리고 add랑 set과의 차이점도 잘 이해가 안됩니다
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
정상적으로 이미지를 보냈을때 form data가 보이지 않습니다
제로초님의 코드로 서버를 가동하여서 사진 업로드를 해봤는데 브라우저 쪽에서 form data가 보이질 않습니다 혹시 브라우저 옵션에 form data를 끄는 기능도 있나요?
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
9장 질문 있습니다
안녕하세요441쪽 routes/user.js if (user) { await user.addFollowing(parseInt(req.params.id, 10)); res.send("success");parseInt(req.params.id, 10)req.params.id가 숫자인데 parseInt를 사용하는 이유가 궁금합니다 :)
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
config/config.json 파일을 읽을 수 없다고 나옵니다.
npx sequelize db:create를 하게되면 Error reading "config/config.json". Error: Error: Cannot find module 라는 오류가 뜹니다. config파일을 수정해야 하나요?
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
npm start시 에러가 발생합니다.
"scripts": { "start": "nodemon app" },scripts 부분에 nodemon이 들어가 있는데 npm ERR! Missing script: "start" 라는 에러가 뜹니다
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
console.error
안녕하세요 백엔드를 공부하다가 궁금한점이 생겨서 질문 드립니다. err가 뜰경우에 console.error()로 에러를 콘솔에 띄우는데 백엔드에서 console.error(error)를 명시하는 이유가 있을까여?
- 해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
session 질문입니다.
const express = require("express"); const path = require("path"); const morgan = require("morgan"); const cookieParser = require("cookie-parser"); const session = require("express-session"); const app = express(); app.set("port", process.env.PORT || 3000); // 전역 변수 느낌 app.use(morgan("dev")); app.use(cookieParser("zerochopassword")); app.use("/login", (req, res, next) => { console.log('로그인 완료 세션 지급!'); session({ resave: false, saveUninitialized: false, secret: "zerochopassword", cookie: { httpOnly: true, }, name: "connect.sid", })(req, res, next); }); app.use("/", (req, res, next) => { if (req.session) { express.static(path.join(__dirname, "public"))(req, res, next); // 미들웨어 확장법 } else { next(); } }); 제가 원했던건 /login url을 방문한 사용자만 session을 지급 받고 세션이 있어야 정적 리소스를 받아올 수 있게 해주고 싶었습니다./login url을 방문하면 cookie에 connect.sid가 저장되는 것을 보고 원하던 대로 작동할 줄 알았지만 이후 / url을 방문하니 req.session은 undefined 였습니다. 이유가 궁금합니다.
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
passport 미들웨어 질문드립니다!
미니 프로젝트를 진행하는데 현재 백엔드 api를 다 만들고 프론트로 넘어가려고 하는 중입니다.모든 api 상황에 맞게 isLoggedin isNotLoggedin 설정을 해주었습니다.그래서 req.user로 user의 id값을 불러와서 작동되는 api가 많은데 이렇게 개발 과정에서 쿠키를 심어가면서 로그인유무를 지키면서 작업한는게 맞는건가요?? 아님 매번 로그인을 하고 테스트하는게 좀 불편하니 프로젝트 마지막에 설정을 해줘야 할까요?그리고 만약 쿠키를 안심고 하면 req.user id값을 못불러오니 프론트단에서 user id 값을 수동으로 넣어주면서 작업을 해야 하는건가요?
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
notNull Violation: Post.content cannot be null
router.post('/', isLoggedIn, upload.none(), async(req, res, next) => { try { const post = await Post.create({ cotent: req.body.content, img: req.body.url, UserId: req.user.id, }); res.redirect('/'); } catch (error) { console.error(error); next(error); } });게시글 라우터를 이렇게 작성해서 이미지 업로드랑 게시글 업로드를 했는데 프론트에 notNull Violation: Post.content cannot be null 이라는 에러가 나타나네요 이게 무슨 에러인가요?
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
usernaeField, passwordField 질문
usernameField: 'email', passwordField: 'password',localstrategy.js 파일에 9번 10번 줄에 있는 usernameField와 passwordField는 정체가 무었이고 어디에 사용되는 것인가요?
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
질문 있습니다 ㅠ mysql 관련이요 ㅠ
수업에는 없는 내용이긴 한데 ㅠsequelize 안쓰고 mysql로 연동을 해보았는데요 ㅠ로컬에서는 정상 작동 하는데 배포를 하면 mysql 연동이 안됩니다 ㅠ코드는// db>index.js const mysql = require('mysql2') module.exports = mysql.createConnection({ // host: process.env.HOST || 'localhost', host: '127.0.0.1', user: 'root', password: process.env.DBPWD, database: process.env.SCHEMA, multipleStatements: true }) // .env DBPWD = "password" SCHEMA = "usedb" HOST = "127.0.0.1" // routes > main.js const router = express.Router(); const sql_con = require('../db/index'); router.get('/test', async (req, res) => { let testSql = `SELECT * FROM application_form`; // const results = await sql_con.promise().query(testSql) sql_con.query(testSql, (err, result) => { console.log(result); }) res.send('testtestsetsetset') }) 로컬에서는 정상 작동 하는데 배포를 하면 mysql 연동이 안되는데 ㅠ설정에 문제가 있는걸까요??현재 3060포트 물려서 HTTPS 로 돌리고 있는데 그것때문에 그런걸까요?? ㅠ혹시나 해서 host를 127.0.0.1:3306이렇게 해봤는데도 데이터를 못읽습니다 ㅠ어떤게 문제고 어떻게 해결해야할까요?? ㅠㅠㅠㅠ
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
this === {}
export와 this에서, global에 있는 this와 {}가 같다고 하셨는데, 테스트 하면 false로 뜹니다.console.log(this === module.exports === {}) //false어떻게 해야 같다고 뜨는 건가요? 제가 잘못 작성한건지 문의드립니다.
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
유닛테스트
안녕하세요 강의에서 유닛테스트를 보고 다른 것들도 혼자 해보려고 하였는데여책 챕터 10에 있는 p462쪽에 middlewares.js 함수를 유닛테스트 해봤는데 이런 경우에는 어떤 식으로 해야할지 모르겠습니다..헤더로 받아오는것은 어떻게 해야할지 모르고요,, 혹시 좀 힌트를 얻을 수 있을까요>?
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
readFile 과 sendFIle 질문 있습니다
선생님 :)router 연습하고 있는데router 안에 res.sendFile 과 fs.readFile을 시도해보고 있는데res.sendFile은 잘 됩니다fs.readFile은 error가 뜹니다TypeError [ERR_INVALID_CALLBACK]: Callback must be a function. Received undefined이런 error 가 뜹니다. 왜 그런 걸까요?
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
시퀄라이즈와 쿼리문 직접사용 속도차이가 날까요??
질문 드립니다!기존에 PHP를 썼었어서 쿼리문이 편하긴 해서요!시퀄라이즈와 쿼리문을 직접사용 했을때데이터 처리에 있어 속도 차이가 많이 나는지 궁금합니다!!그리고 혹시 실무에서는 어떤 방식을 많이 사용할까요??
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
시퀄라이즈에서 관계 정의를 나중에 해도 되나요??
1:N 관계에서는 associate 에서 관계 정의를 해야한다고 배웠는데요!혹시 이 관계 정의를 테이블 생성 후 나중에 해도 되나요?? 테스트를 해보려는게 게시판을 먼저 만들고 사용하다가카테고리 등을 추후에 넣고 관계정의가 되는지 해보려고 해서요! DB 생성시 해야하고 추후에 추가시 DB를 수정해야 한다면해당 옵션(?)을 DB에 줘야 하나요?? 아니면 static associate(db){} 를 비워놨다가나중에 추가해도 괜찮은걸까요???
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
이벤트루프와 싱글 스레드 방식에 대한 질문입니다.
스프링에서는 요청이오면 스레드를 하나 더 만들어 처리를 하고, 노드는 싱글 스레드 기반으로 콜스택에서 하나씩 처리를 하지만 IO 요청과 같은 것을 libuv에 있는 스레드 풀로 위임해서 처리한다고 알고 있습니다. 그래서 동시에 여러 요청이 오더라도 백그라운드에서 처리가 되는 것으로 알고 있는데, 그렇다면 libuv에 있는 스레드의 총 개수가 5개고 5초가 걸리는 IO 요청이 6개가 들어왔을 때 5개의 스레드가 5초간 요청을 처리하고 남은 1개의 요청은 5초가 지나고 처리되는 게 맞을까요? 그렇다면 1개의 요청이 콜 스택에 5초간 남아있다가 백그라운드로 넘어가므로 메인 스레드는 5초간 아무런 요청도 처리할 수 없는걸까요?
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
화살표 함수 부분 질문드립니다!
제대로 이해가 된건지 의문이 들어 질문드립니다!강의 4분 49초에 보면, function의 경우 자기 자신만의 this를 가진다고 하셨는데var that = this;이 부분에서 this는 왜 relationship1의 this를 칭하는지 궁금합니다. 저는 이부분에서 this가 logFriends 의 this라고 생각했는데 이해를 잘못한것 같아서요..ㅠㅠ 감사합니다!
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
에러가 납니다 ㅜㅜ !
const http = require("http");const fs = require("fs").promises;const server = http .createServer(async (req, res) => { try { res.writeHead(200, { "Content-Type": "text/html; charset = utf-8" }); const data = await fs.readFile("./server2.html"); res.end(data); } catch (error) { console.error(err); res.writeHead(200, { "Content-Type": "text/plain ; charset = utf-8" }); res.end(err.massage); } }) .listen(8080);server.on("listening", () => { console.log("8080번 포트에서 서버 대기 중입니다.");});server.on("error", (error) => { console.error(error);});해당 강의에서 작성하신 코드 그대로 작성하였는데 chosunghyuk@MacBook-Pro nodejs.js % node server2node:internal/modules/cjs/loader:959 throw err; ^이렇게 터미널에서 오류가 뜹니다. 제가 에러를 찾아본 결과For All => Windows, Linux, MacDelete the node_modules directoryDelete the package-lock.json fileRun npm installRun npm start이렇게 해결하라고 하는데 해당 부분대로 실행해봐도 같은 에러가 자꾸 뜹니다 ㅜㅜ !!
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
안녕하세요 질문이 있습니다 !
안녕하세요 강의 잘 듣고 있습니다.const a = () => { console.log("hi");};a();위 식에서 a라는 객체(변수?)에 익명함수를 넣은 형태로a(); 를 작성해야지만 hi가 출력되는데요 const timeout = setTimeout(() => { console.log("1.5초 후 실행");}, 1500);이 식에서는 timeout이라는 객체(변수?)에 setTimeout을 선언만 했는데 실행되는 이유를 모르겠습니다.제 생각에는 timeout(); 을 해줘야 실행되는 것이 아닌가요 ..?