Route handler
콜백은 next('route')
를 호출하여 나머지 라우트 콜백을 우회할 수도 있다.
이러한 메커니즘을 이용하면 라우트에 대한 사전 조건을 지정한 후, 현재의 라우트를 계속할 이유가 없는 경우에는 제어를 후속 라우터에 전달할 수 있다.
app.get('/example/b', function (req, res, next) {
console.log('the response will be sent by the next function ...');
next(); //--> 다음 function 을 실행
}, function (req, res) {
res.send('Hello from B!');
});
app.route()
를 이용하면 라우트 경로에 대하여 체인 가능한 라우트 핸들러를 작성할 수 있다.
app.route('/book')
.get(function(req, res) {
res.send('Get a random book');
})
.post(function(req, res) {
res.send('Add a book');
})
미들웨어 작성
미들웨어 함수 로드
* 함수를 지정하여 ``app.use()`` 를 호출한다.
*
var requestTime = function (req, res, next) {
req.requestTime = Date.now();
next();
};
app.use(requestTime);
app.get('/', function (req, res) {
var responseText = 'Hello World!';
responseText += 'Requested at: ' + req.requestTime + '';
res.send(responseText);
});
배열 구조 분해
기본 변수 할당
var foo = [1,2,3];
var [one, two, three] = foo;
console.log(one) // 1
console.log(two) // 2
console.log(three) // 3
변수 값 교환하기 (신기함😀😀😀)
하나의 구조 분해 표현식만으로 두 변수의 값을 교환할 수 있다.
구조 분해 할당 없이 두 값을 교환하려면 임시 변수가 필요하다. (temp라는 변수를 만들어서 교환했었다.)
var a = 1;
var b = 3;
[a, b] = [b, a];
console.log(a); // 3
console.log(b); // 1
객체 구조 분해
var o = {p: 42, q: true};
var {p, q} = o;
console.log(p); // 42
console.log(q); // true
const { method, url } = request;
// 위의 경우에 request.method의 값을 method에 넣는다고 생각
// 그러면 앞으로 method로 request.method 와 똑같은 역할을 수행함
상태코드 | 이름 | 의미 |
---|---|---|
200 | OK | 주로 GET에 사용 |
201 | Create | 주로 POST에 사용 |
204 | No contents | 요청은 성공했으나 제공할 컨텐츠 없음 |
403 | Fobidden | 접근금지. 권한 밖의 접근을 시도함 |
404 | Not Found | 요청한 URL에 해당 리소스 존재하지 않음 |