React 강의 정리 (6)
2019. 8. 23. 19:34ㆍ[정리] 기능별 개념 정리/React
NodeJS
- 브라우저가 아닌 환경에서도 자바스크립트를 사용할 수 있도록 하는 자바스크립트 런타임.
- NodeJS 는 웹서버가 아니다.
- NodeJS 만으로는 아무것도 하지 않는다.
- HttpServer 를 직접 작성해야한다.
Express
- NodeJS 기반의 HttpServer
- Routing, Session, Template 등 기능을 제공
Express 예시
main.js
var express = require('express');
var user = require('./routes/user');
var app = express();
app.get('/', function(req, res) {
res.send('Hello World');
});
app.use('user', user);
app.listen(3000, function() {
console.log('Application is listening');
})
router/user.js
var express = require('express');
var router = express.Router();
router.get('/user/:id', function(req, res) {
res.send('GET user' + req.params.id);
});
router.post('/user', function(req, res) {
res.status(201).json({success:true});
});
router.put('/user', function(req, res) {
res.status(400).send(message:'PUT');
});
router.delete('/user', function(req, res) {
res.send('DELETE request');
});
module.exports = router;
node main.js
/* nodemon : 코드의 변경을 바로바로 재시작 할 수 있게 도와주는 프로그램.
nodemon 을 사용할 경우 nodemon main.js 으로 실행한다 */
라우팅
app.HttpMethod(path, handler)
path variable | path 안에 콜론이 들어간 경우으로 사용할 수 있다. |
request body | req.body |
미들 웨어 : Http 요청과 Express 사이에 미들웨어를 삽입하여 Express 에 없는 기능을 만들 수 있다.
main.js
var express = require('express');
var user = require('./routes/user');
var myLogger = function(req, res, next){
console.log(req.url);
next();
}
var app = express();
app.get('/', function(req, res) {
res.send('Hello World');
});
app.use('user', user);
app.listen(3000, function() {
console.log('Application is listening');
})
이미 만들어진 많은 좋은 미들웨어가 있다.
morgan : loggin 미들웨어
body-parser : json을 파싱해주는 미들웨어
미들웨어 적용은 npm 으로 설치한다음 아래와 같이 하면된다.
main.js
var express = require('express');
var user = require('./routes/user');
var morgan = require('morgan');
var bodyParser = require('body-parser');
var app = express();
app.get('/', function(req, res) {
res.send('Hello World');
});
app.use('user', user);
app.use('/', express.static('public'));
app.use(morgan('dev'));
app.use(bodyParser.json());
app.listen(3000, function() {
console.log('Application is listening');
})
public resource를 열어 줄 수도 있다.
main.js
var express = require('express');
var user = require('./routes/user');
var morgan = require('morgan');
var bodyParser = require('body-parser');
var app = express();
app.use('user', user);
app.use('/', express.static('public'));
app.use(morgan('dev'));
app.use(bodyParser.json());
app.listen(3000, function() {
console.log('Application is listening');
})
public/index.html
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
</body>
</html>
MongoDB
Document : {key:value} 의 집합
Collection : Document 의 집합
Database : Collection 의 집합
Server : Database 가 들어있는 서버
MongoDB 명령어
MongoDB 는 자바스크립트 기반이라서 MongoDB 안에서 함수를 만들어 사용할 수 있다.
// mongoDB 접속
> mongo
// DB 목록 조회
> show dbs
// DB 선택(존재하지 않아도 가능)
// Document 삽입 = 자동 DB, Collection 생성
> use mongodb_test_database
> db.test_member.insert({"name":"kok202"})
> show dbs
// DB 삭제
> db.dropDatabase()
> show dbs
// Collection CD
> show collections
> db.createCollection("books")
> db.books.drop()
// Document CRUD
> db.createCollection("books")
> db.books.insert({"title": "HelloWorld", "writer":"kok202", "price":3000})
> db.books.insert({"title": "GoodByeWorld", "writer":"kok303", "price":5000})
> db.books.insert({"title": "ThisIsWorld", "writer":"kok404", "price":2000})
> db.books.find()
> db.books.find({"title": "HelloWorld"})
> db.books.find({"price": {$gt: 4000, $lt: 6000}})
> db.books.find({$or: [{"title":"HelloWorld"}, {"writer":"kok303"}]})
> db.books.find().sort(["value":-1])
> db.books.find().limit(2)
> db.books.update({"title":"ThisIsWorld"}, {"price": 9000})
> db.books.remove({"title": "HelloWorld"})
이외 적지 않은 명령어
- find 할 때 정규표현식을 사용할 수 있다.
- find 할 때 where 연산자(JS)을 사용할 수 있다.
- find 할 때 elementMatch을 사용할 수 있다.
- projection 을 할 수 있다.
- slice 로 limit 을 설정할 수 있다.
- Document 를 아예 변경 시킬 수 있다. (_id 값은 그대로 유지된다.)
- 특정 필드 값을 삭제할 수 있다.
- upsert 할 수 있다.
- 필드에 배열을 생성할 수 있다. (push)
- 베열 필드에 값을 제거할 수 있다.
'[정리] 기능별 개념 정리 > React' 카테고리의 다른 글
React 기본 강좌 정리 - 3~4 (0) | 2020.02.12 |
---|---|
React 기본 강좌 정리 - 1~2 (0) | 2020.02.11 |
React 강의 정리 (5) (0) | 2019.08.18 |
React 강의 정리 (3,4) (0) | 2019.08.18 |
React 강의 정리 (2) (0) | 2019.08.18 |