express 중간부품의 개념

2512 단어 node.js

중간부품


만약 나의 get,post 리셋 함수에 넥스트 파라미터가 없다면, 첫 번째 루트와 일치하면 아래로 일치하지 않을 것입니다.아래로 일치하려면next()1app를 써야 합니다.get("/",function(req,res,next){2 console.log("1");3 next();4});56app.get("/",function(req,res){7 console.log("2");8});
다음 두 가지 루트는 상관없다고 생각합니다: 1app.get("/:username/:id",function(req,res) {2console.log("1");3res.send("사용자 정보"+req.params.username);4});56app.get("/admin/login",function(req,res) {7 console.log("2");8 res.send("관리자 로그인");9});그러나 실제로는 충돌했다. 관리자는 사용자 이름으로login을 id로 사용할 수 있기 때문이다.
해결 방법 1: 위치를 교환합니다.즉, express의 모든 루트 (중간부품) 의 순서가 매우 중요하다.첫 번째와 일치하면 아래로 일치하지 않습니다.구체적으로 위로 쓰고, 추상적으로 아래로 쓰세요.1app.get("/admin/login",function(req,res) {2console.log("2");3res.send("관리자 로그인");4});56app.get("/:username/:id",function(req,res) {7console.log("1");8res.send("사용자 정보"+req.params.username);9});
해결 방법 2:1 app.get("/:username/:id",function(req,res,next) {2 var username = req.params.username; 3//검색 데이터베이스가 존재하지 않으면next() 4 if(검색 데이터베이스) {5 console.log("1"), 6 res.send("사용자 정보"), 7}else {8 next(); 9}10};1112app.get("/admin/login",function(req,res) {13 console.log("2");14res.send("관리자 로그인");15});
루트 get,post 이런 것들은 바로 중간부품입니다. 중간부품은 순서를 따지고 첫 번째 부품과 일치하면 뒤로 일치하지 않습니다.next 함수가 계속 뒤로 일치할 수 있습니다.
app.use () 도 중간부품입니다.get,post와 달리 그의 사이트 주소는 정확하게 일치하지 않는다.작은 폴더가 확장될 수 있는 것이다.예를 들어 웹 주소:http://127.0.0.1:3000/admin/aa/bb/cc/dd1app.use("/admin",function(req,res) {2res.write(req.originalUrl+"n");///admin/aa/bb/c/d3res.write(req.baseUrl+"n);///admin4res.write(req.path+"n");///a/bb/cc/d5res.end("안녕하세요");6};
만약/1//경로를 쓰지 않을 때, 실제로는 "/"에 해당한다. 바로 모든 사이트 2app이다.use(function(req,res,next){3 console.log(new Date());4 next();5});
app.use () 는 우리에게 특정한 기능을 추가할 수 있는 편리한 장소를 제공한다.실제 앱.use()의 물건은 기본적으로 제3자로부터 얻을 수 있다.
● 대부분의 경우 렌더링 내용은res.render () 를 사용하여views의 템플릿 파일에 따라 렌더링됩니다.views 폴더를 사용하지 않고 폴더 이름을 설정하려면 app.set("views","aaaa");● 빠른 테스트 페이지를 작성하려면 res.send () 를 사용해야 한다.이 함수는 내용에 따라 자동으로 Content-Type 헤더와 200 상태 코드를 설정해 줍니다.send () 는 end와 같이 한 번만 사용할 수 있습니다.end랑 달라요. 어디 있어요?IME 유형을 자동으로 설정할 수 있습니다.● 다른 상태코드를 사용하려면:
res.status(404).send('Sorry, we cannot find that!');

● 다른 Content-Type을 사용하려면 다음과 같이 하십시오.
res.set('Content-Type', 'text/html');

좋은 웹페이지 즐겨찾기