Node.js 미들웨어 및 외부 액세스
middleware
의 가장 중요한 개념 중 하나인 Express.js
를 살펴보겠습니다.미들웨어
요청이
server.get
에서 두 번째 매개변수로 지정한 핸들러 함수에 도달하기 전에 다른 함수 체인을 통과합니다. 이러한 각각의 기능과 모든 기능을 middleware
라고 합니다.middleware
를 사용하여 이러한 use
함수를 추가할 수 있습니다.server.use((req, res, next) => {
console.log(`Received ${req.method} request!`);
next();
})
이 몇 줄의 코드를 프로젝트에 추가하면 브라우저에서
Received GET request!
페이지를 새로 고칠 때마다 콘솔에 localhost:8080
메시지가 표시됩니다. req.method
필드는 HTTP
요청의 유형을 저장합니다(이 경우에는 GET
).
Middleware
functions have 3 parameters. The last one,next
, is a service function that needs to be called if you want to continue moving the request through themiddleware
stack and beyond.
경우에 따라 일부 요청이 경로 처리기에 도달하기 전에 필터링하고 싶을 수 있습니다. 좋은 예는 권한 부여 프로세스입니다. 요청에 암호 또는 비밀 키를 수락하고 확인된 요청만 허용할 수 있습니다.
const checkSecretKey = (req, res, next) => {
if (!req.query.secretKey || req.query.secretKey !== 'TistRIanDsMOUnca') {
return res.status(403).send('Secret key is missing or incorrect');
}
next();
}
여기에서 요청에
secretKey
필드가 있는지 확인하고, 그렇다면 해당 값을 확인합니다. 확인에 문제가 있는 경우 상태403
및 메시지Secret key is missing or incorrect
를 다시 보냅니다. 모든 것이 정상이면 next()
함수 호출을 사용하여 요청을 추가로 보냅니다.동일한
checkSecretKey
함수를 사용하여 middleware
함수를 use
스택에 추가할 수 있습니다.app.use(checkSecretKey);
자신을 테스트하려면 요청 유형을 로깅하기 전에 먼저 개인 키 확인을 추가한 다음 그 후에 시도하십시오. 어떤 경우에는 콘솔에 출력이 표시되고 다른 경우에는 표시되지 않습니다. 이유를 이해합니까?
쿼리 문자열이란 무엇입니까
이전 예제에서는
req.query
쿼리 문자열에 액세스하려고 했습니다. 여기에는 기본 경로와 물음표 뒤에 지정하는 모든 매개변수가 포함됩니다.localhost:8080/about?secretKey=123&name=jack
이 예에서 쿼리 문자열은
secretKey=123&name=jack
입니다. secretKey
및 name
의 두 매개변수로 구성됩니다.Express.js
는 후드 아래에서 그것을 디코딩하고 req.query
에서 멋진 객체를 제공합니다. 이는 다음과 같습니다.{
secretKey: 123,
name: 'jack',
}
반 단계 뒤로 돌아가 올바른 secretKey를 사용하여 서버에 요청을 보내십시오. 우리의 인증이 작동하고 서버에 대한 액세스 권한을 얻어야 합니다.
외부 세계 및 로컬 터널에서의 액세스
지금은 로컬 컴퓨터에서만 새 백엔드와 통신할 수 있습니다. 다른 장치와 외부 사용자가 귀하의 서버와 통신하려면 강의 맨 처음에 있는 링크에서 외부 IP 주소
localhost
로 간단히 교체할 수 없습니다. 더 정확하게는 기술적으로는 가능하지만 이렇게 하려면 3페이지의 지침을 거쳐야 합니다. 당신이 중간에 도달하기 전에 잠들었을 것이라고 확신합니다.다행스럽게도
npm
라는 매우 편리한 localtunnel
패키지가 있습니다. 다음과 같이 말할 수 있습니다. "내 백엔드는 포트 8080에서 내 컴퓨터에서 실행 중입니다. 모든 사람이 사용할 수 있도록 만드십시오."마술처럼 들리지만 괜찮습니다. localtunnel
는 인터넷의 모든 사용자가 백엔드를 사용할 수 있도록 주소를 제공합니다.localtunnel
here 설치 지침을 찾을 수 있습니다. 그러나 전체 프로세스를 단계별로 보여 드리겠습니다.localtunnel
를 설치합니다. npm install -g localtunnel
lt --port 8080
이 명령을 실행하면 메시지가 표시됩니다.
your url is: https://bright-pug-55.loca.lt
물론 URL은 다르지만 휴대폰이나 인터넷에 연결된 다른 장치의 웹 브라우저에 입력하면 먼저 시작 페이지가 표시됩니다.
그리고
Click to Continue
를 클릭하면 이전에 localhost:8080
에서만 사용할 수 있었던 것과 동일한 내용이 표시됩니다.Learn Full-Stack JavaScript
Reference
이 문제에 관하여(Node.js 미들웨어 및 외부 액세스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/coderslang/node-js-middleware-and-external-access-27e8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)