2016-07-19 2 views
0

문제가 있습니다.URL 검색어 매개 변수

나는 노드와 표현을 사용하고 있습니다. Index.html에는 2 개의 입력이 있습니다.

router.get('/profile', function(req, res){ 

var var1 = req.params.variable1; 
var var2 = req.params.variable2; 

res.render('result'); 
} 

노드가 result.html을 렌더링,하지만 난 얻을 URL이 질문은 어떻게 URL 대신 https://localhost:3030/profile/xxx/yyy 를 얻을 수

https://localhost:3030/profile?variable1=xxx&variable2=yyy 

입니다 :

<form action="/profile" method="get"> 
    <input id="variable1" name="variable1" type="text" placeholder="..."> //xxx 
    Select : 
<select id="variable2" name="variable2"> 
    <optgroup label="y"> 
     <option value="variable">yyy</option> 
    </select> 

profile.js에 내가있어 위?

답변

1

로 경로를 정의합니다

var var1 = req.params.var1; 
var var2 = req.params.var2; 

업데이트] 답변 : /profile/:var1/:var2

지금 그들에게 사용 req.params에 액세스

비록, 그것은 조금 더러울 수 있습니다를, 당신 양식을 제출할 URL을 변경할 수없는 경우 대안으로 시도 할 수 있습니다 (양식 제출시 자바 스크립트를 사용하면 쉽게 할 수 있습니다).

router.get('/profile', function(req, res){ 

var var1 = req.query.variable1; 
var var2 = req.query.variable2; 
res.redirect('/profile/'+var1+'/'+var2); 
} 

router.get('/profile/:var1/:var2', function(req, res){ 
var var1 = req.params.variable1; 
var var2 = req.params.variable2; 
res.render('result'); 
}); 
+0

내가 직접 처리 할 수 ​​없기 때문에 질문을 편집했습니다. ( – BaSic

+0

@BaSic 도움이되는 경우 업데이트 된 답변을 확인하십시오. –

+0

아직 없습니다. 그것은 여전히 ​​https : // localhost : 3030/profile? variable1 = xxx & variable2 = yyy이기 때문에 아마 index.html에있는 것일 것입니다. – BaSic