전체 글
-
노드 관계 쿼리노드 2023. 4. 18. 14:07
*시퀄라이저를 사용하고 있는 환경에서 관계 쿼리는 결괏값이 자바스크립트 객체이다. 만약에 사용자를 가져온다~ 라고 하면 다음과 같다 const user = await User.findOne({}); //모두 가져올거면 findAll console.log(user.nick); //사용자 닉네임 user에 유저 한 명을 찾아서 할당을 했고 출력문을 통해 그 유저의 닉네임에 접근했다. 결괏값이 자바스크립트 객체여서 가능한 일이다. include로 JOIN 과 비슷한 기능 수행 가능(관계 있는 것 엮을 수 있음) 만약에 내가 쓴 댓글까지 가져오고 싶다면 어떻게 할까? SQL에서는 조인을 사용해야 하지만 시퀄라이저에서는 User.findOne 한 다음에 include에 Coomment를 넣어주면 된다. const..
-
노드 테이블 관계 이해하기노드 2023. 4. 18. 11:39
관계 정의하기 users 모델과 comments 모델 간의 관계를 정의 1 : N 관계 (사용자 한 명이 댓글 여러 개 작성) 시퀄라이즈에서는 1 : N 관계를 hasMany로 표현(사용자.hasMany(댓글)) 반대의 입장에서는 belongsTo(댓글.belongsTo(사용자)) belongsTo가 있는 테이블에 컬럼이 생김(댓글 테이블에 commenter 컬럼) *테이블, 시퀄라이저 관련 포스팅은 이번주 내로 정리할 예정 말로 표현해보면 좀 더 쉽다. 사용자는 댓글을 여러개 작성할 수 있지만 댓글 하나에는 사용자 한명만이 존재해야 한다. 이런 경우가 1 대 다 관계 즉, 1 : N 관계라 할 수 있다. 모델 각각의 static associate 메서드에 넣는다. //models/user.js ... ..
-
노드 next 활용법노드 2023. 4. 17. 18:22
res.json http 모듈로 데이터를 json으로 쓰기를 간단히 하면 다음과 같다 res.writeHead(200, { 'Content-Type' : 'application/json' }); res. end(JSON.stringify({ hello: 'me'})); 이 부분이 express에서 굉장히 간단하게 변한다. res.json({ hello: 'me'}); *기본 http의 모듈의 메서드들은 거의 사용하지 않게 된다. next를 사용해서 에러 처리 의도적으로 throw 를 통해서 에러를 발생시킬 수 있지만 실무에서 에러는 보통 catch 문을 통해 접근한다. //app.js const express = require('express'); const path = require('path'); c..
-
노드 미들웨어 특성 이해하기노드 2023. 4. 17. 17:19
//app.js const express = require('express'); const path = require('path'); const app = express(); app.set('port', process.env.PORT || 3000); app.use((req, res, next) => { console.log('모든 요청에 실행'); next(); }) app.get('/', (req, res) => { res.sendFile(path.join(__dirname, '/index.html')); }); app.post('/', (req, res) => { res.send('hello express!'); }); app.get('/about', (req, res) => { res.send('..
-
노드 미들웨어 사용하기노드 2023. 4. 17. 16:37
//app.js const express = require('express'); const path = require('path'); const app = express(); app.set('port', process.env.PORT || 3000); app.get('/', (req, res) => { console.log('모든 요청에 실행'); res.sendFile(path.join(__dirname, '/index.html')); }); app.post('/', (req, res) => { console.log('모든 요청에 실행'); res.send('hello express!'); }); app.get('/about', (req, res) => { console.log('모든 요청에 실행');..
-
노드 express로 html 서빙하기노드 2023. 4. 17. 15:59
express로 만든 서버에 html 파일을 서빙해보자. 이 전 게시글에 있었던 코드는 다음과 같다 //app.js const express = require('express'); const path = require('path'); const app = express(); app.set('port', process.env.PORT || 3000); app.get('/', (req, res) => { //res.send('Hello, Express'); res.sendFile(path.join(__dirname, '/index.html')); }); app.listen(app.get('port'), () => { console.log(app.get('port'), '번 포트에서 대기 중'); }); //..
-
노드 Express 웹 서버 시작하기노드 2023. 4. 17. 15:47
Express 소개 http 모듈로 웹 서버를 만들 때 코드가 보기 좋지 않고, 확장성도 떨어짐 프레임워크로 해결 대표적인 것이 Express, Koa, Hapi 코드 관리도 용이하고 편의성이 많이 높아짐 package.json 만들기 직접 만들거나 npm init 명령어로 생성하면 된다. nodemon은 소스 코드 변경 시 서버를 재시작해준다. //package.json { "name": "learn-express", "version": "0.0.1", "scripts": { "start": "nodemon app" }, "devDependencies": { "nodemon": "^2.0.3" }, "dependencies": { "cookie-parser": "^1.4.5", "express": "^..
-
npm 배포하기노드 2023. 4. 14. 16:18
npm 회원가입 https://www.npmjs.com/ npm Bring the best of open source to you, your team, and your company Relied upon by more than 17 million developers worldwide, npm is committed to making JavaScript development elegant, productive, and safe. The free npm Registry has become the center of Java www.npmjs.com 배포할 패키지 작성 package.json과 main 부분과 배포할 파일 경로명이 일치해야 한다. "main" : "index.js" 일단 배포를 해보기 위한 것이..