2016-12-22 92 views
0

我有以下ejs代碼。發送ejs字段到nodejs文件

<form action="/" class = "form-horizontal" method="post"> 
<textarea class = 'form-control departureCode' name = "departureCode"  rows= "1"></textarea> 
</form> 

這是我在routes.js文件中的後處理程序代碼。

routes.post('/', (req, res, next) => { 
      let departureCode = JSON.parse(req.body.departureCode); 
      console.log(departureCode); 
     }); 

我沒有得到這個成功的工作。我的郵件處理程序中出現未定義的令牌錯誤。你可以幫我嗎?

+1

如果您在路由中發佈數據,則無法在ejs模板中獲取數據。你必須渲染你的視圖並在參數中傳遞數據,然後它將在你的ejs模板中可用。 使用ref:http://stackoverflow.com/questions/25596615/passing-variable-with-ejs-templating –

+0

對不起延遲迴復。我試過使用res.render它仍然給我req.body.departureCode值的未定義令牌錯誤。可能是我缺少一些由bodyparser模塊設置的方式。 – SamT

+0

我繼續閱讀了一些與此問題相關的問題,並偶然發現了一篇文章,他們提到可能不需要解析,因爲它可能已經被解析。我試着刪除JSON.parse,它工作:)。但我必須說,你的初步答案幫助我明白,即使我想將這些值發送到同一個ejs文件,我也必須使用res.render。我正在爲你的答案打個勾。感謝您的輸入。 – SamT

回答

0

let departureCode = JSON.parse(req.body.departureCode); 

它的工作取出JSON.Parse。另外,Yogesh Patel在評論中提出了修改建議。謝謝你們。