2016-09-13 26 views
0
form(action='/allusers', method="post") 
    input(id='name', placeholder='First Name/Last name')  
    button(type='submit') Launch Spacecraft 

這是我的HTML(玉)重定向從另一個頁面ALLUSERS頁面需要用戶名作爲輸入,但我不能傳「名」,以ALLUSERS如何使用查詢或路徑通過表單傳遞參數?

router.post('/allusers', function(req, res, next) { 
var name = req.query.name; 
console.log(name); 
res.render('allusers', { title: 'all users' }); 
}); 

更何況,我已經厭倦了使用req.param.name 但似乎只與req.body.name到工作,所以我只是想知道如何使用req.param和\或req.query因爲我不能我的URL從形式轉變提交按鈕,從它

EDIT1中提取信息:I類的解決這是在定義形式,它是假設的問題要像input(type='',name='', placeholder='')和使用req.body.name但我仍然不知道如何與URL玩又

+0

現在查看我的答案。乍一看,我沒有注意到你使用「id」而不是「name」屬性。這就是爲什麼它不起作用。 – bitifet

回答

0

編輯:我沒有注意到,你是唱ID屬性而不是名稱這是定義表單字段名稱的最佳選擇。

Id只是關於識別DOM上下文中的任何DOM元素(不僅僅是輸入)。字段名稱應該由指定名稱屬性。這就是爲什麼(正如我想到的,但你還沒有回答我),當你提交表格時,你在URL中看不到「name = xxxx」。

一部開拓創新(在這種情況下是錯誤的)答案):

在GET請求,表單數據(實際的URL參數)進來req.query財產(不req.params因爲我這個編輯之前說的,抱歉)。

固定例如:

app.get('/user', function(req, res) { 
    res.send('user ' + req.query.name); 
}); 

反正看到Express Request.query文檔。

實際上,根據http規範,甚至可以在POST,PUT,DELETE或PATCH請求中提供url參數。這就是他們進入不同地方的原因:因爲即使在提交表單時,您也始終可以擁有url參數,包括POST,PUT,DELETE,PATCH(或將來指定的任何其他)請求。

+0

當用戶在填寫他的名字後按下formA上的提交按鈕時,我想在另一個頁面上顯示該名稱。我怎樣才能做到這一點? – eersteam

+0

嘗試閱讀我的答案並修復你的代碼;-) – bitifet

+0

是否有任何按鈕按快速按下功能,如我們在.net例如onButtonClick,然後我們可以使用該頁面上的所有參數保存在數據庫中? – eersteam