Program Club

Express에서 경로 일치를위한 정규식

proclub 2020. 11. 19. 22:10
반응형

Express에서 경로 일치를위한 정규식


저는 정규식을 잘 못하기 때문에이 작업을 올바르게 수행하고 있는지 확인하고 싶습니다. 하자 내가이 개 매우 유사한 경로를 가지고 있다고, /discussion/:slug/그리고 /page/:slug/. 이 두 페이지와 일치하는 경로를 만들고 싶습니다.

app.get('/[discussion|page]/:slug', function(req, res, next) {
  ...enter code here...
})

이것이 올바른 방법입니까? 지금은 두 개의 별도 경로를 만들고 있습니다.

someFunction = function(req, res, next) {..}
app.get('/discussion/:slug', someFunction)
app.get('/page/:slug', someFunction)

app.get('/:type(discussion|page)/:id', ...) 공장


문자열이 아닌 리터럴 자바 스크립트 정규식 객체를 사용해야하며 @sarnold는 괄호로 대체 할 수 있습니다. 대괄호는 문자 클래스 용입니다.

const express = require("express");
const app = express.createServer();
app.get(/^\/(discussion|page)\/(.+)/, function (req, res, next) {
  res.write(req.params[0]); //This has "discussion" or "page"
  res.write(req.params[1]); //This has the slug
  res.end();
});

app.listen(9060);

(.+)수단은 적어도 1 캐릭터의 슬러그가 있어야합니다 또는이 경로가 일치하지 않습니다. (.*)빈 슬러그와도 일치 시키려면 사용하십시오 .

참고 URL : https://stackoverflow.com/questions/10858005/regex-for-route-matching-in-express

반응형