2016-09-21 4 views
0

두 경로가 있습니다. app.use는 정적 파일을 제공합니다. 브라우저에서 다른 매개 변수를 사용하는 ExpressJS 라우팅

app.use('/test', earlyAccess(), express.static(path.join(__dirname, staticFolder))) 

app.get("/test", callback); 
app.get("/test/:id", callback); 

// Here is the callback 
var fileStream = fs.createReadStream(staticFolder + '/test.html'); 
fileStream.on('open', function() { 
    fileStream.pipe(res); 
}); 

, 나는 localhost:80/test/1를 호출하는 경우 - 잘 작동합니다. 하지만 localhost:80/test으로 전화하면 기본 페이지로 리디렉션됩니다. 서버 콘솔에서 304 경고가 발생했습니다.

expressjs에서 매개 변수를 기반으로하는 경로를 사용하는 방법은 무엇입니까?) (당신이 미들웨어를 쓸 수있는 의미,

app.use("/test/*", (req, res, next) => { 
    // your callback(req, res); 
    next(); 
}); 
app.get("/test/:id", callback); 

app.use, 그것은 다음 호출 할 것이다;

+0

304는 수정되지 않은 문서임을 나타냅니다. '/ test'의 콜백은 무엇입니까? –

+0

은 HTML을로드합니다. test/: id 및/test는 동일한 html 페이지를로드합니다. – user2325247

+0

콜백 기능을 제공 할 수 있습니까? –

답변

-3

이처럼 시도 할 수 있습니다

+0

그리고 이것이 원래의 질문에 어떻게 대답합니까? – jfriend00

+0

아니요. 그것은 작동하지 않았다. – user2325247

+0

이것은 문제가 적용되지 않는 일반적인 경로입니다. –

0

시도 res.sendFile 대신 fs.createReadStream, 같은 것을 사용하기 :

res.sendFile('test.html'); 
+0

/test의 콜백에 결코 충돌하지 않는 것이 문제입니다. – user2325247

+0

아니요,이 두 가지 외에 더 많은 경로가 있습니까? 어쨌든 res.sendFile은 fs.createReadStream보다 낫습니다. –

+0

이해가 안되네요. 더 많은 길을 의미합니까?/test 또는/test/1은 나를 위해 html 페이지를로드해야합니다. – user2325247

0
당신은 콜백 내에서 요청 매개 변수를 확인할 수 있습니다

요청에

app.get('/test', callback); 
app.get('/test/123', callback); 

// callback 
if(req.params.second) { 
    // code for route with param. - /test/123 
} 
else { 
// code for route without param. - /test 
} 

매개 변수가

로 req.params에 저장됩니다
{first:'NameOfRoute', second:'NextParam'} ... 

여기에서

{first:'test', second:'123'} 
+0

알겠습니다. 하지만 결코 콜백을 치지 않습니다. – user2325247

관련 문제