Express는 기본적으로 일련의 미들웨어 함수 호출입니다.
미들웨어 함수는 요청(req), 응답(res), 그리고 그 다음의 미들웨어 함수 대한 액세스 권한을 갖는 함수입니다. 그 다음의 미들웨어 함수는 일반적으로 next라는 이름의 변수로 표시됩니다.
미들웨어 함수들은 next를 통해 순차적으로 처리된다는 점이 주된 성질입니다.
따라서 사용자 인증을 수행하는 미들웨어 또는 로그를 남기는 미들웨어 등을 만들어놓고, 필요할 때 앞 쪽에 위치시키면 편리하게 이용할 수 있습니다.
body-parser 미들웨어, cors 미들웨어가 많이 쓰이며 보통 app.use()의 형태를 가집니다.
https://www.acmicpc.net/problem/1874
const fs = require('fs')
const input = fs.readFileSync('dev/stdin').toString().trim().split('\n')
const [n, ...tests] = input
const queue = []
for (let i = +n; i > 0; i--) {
queue.push(i)
}
const stack = []
let answer = ''
for (let i = 0; i < +n; i++) {
const target = +tests[i]
if (stack[stack.length - 1] === target) {
stack.pop()
answer += '-\n'
continue
}
while (stack[stack.length - 1] !== target && queue.length) {
stack.push(queue.pop())
answer += '+\n'
}
if (stack[stack.length - 1] !== target) return console.log('NO')
stack.pop()
answer += '-\n'
}
console.log(answer)