2017-06-15 101 views
0

我正在使用身體分析器,並對我的前端作出反應。 我正在嘗試創建一個用戶;下面是從後端服務器獲取數據的前端側:從前端形式沒有正確接收req.body在後端nodejs

registering (e) { 
    e.preventDefault() 
    let form = e.target 
    let name = form.querySelectorAll('input')[0].value 

    fetch('http://localhost:5000/createacc', { 
    method: 'POST', 
    headers: {'Content-Type':'application/x-www-form-urlencoded'}, 
    mode: 'no-cors', 
    body: JSON.stringify({name: name}) 
    }) 
下面

是後端接收部分:

function create (req, res, next) { 
    console.log('req is ...', req.body) 
} 

目前控制檯日誌是這樣的:

req is ... { '{"name":"Smiley"}': '' } 

我將無法正確使用這樣的信息嗎?

回答

1

是的,你是部分正確的,你收到一個需要解析的字符串。發送請求時不需要使用JSON.stringify()。 另外,通過發送一個對象,你應該使用內容類型application/json。它有可能忘記了包含body parser中間件。

https://www.npmjs.com/package/body-parser

0

這是因爲Content-Typebody是不一致的。 Content-Type表示內容爲x-www-form-urlencoded,但正文格式爲JSON。

如果你想保留Content-Typeapplication/x-www-form-urlencoded,身體格式應該像a=xxx&b=yyy。對於你的代碼,這將是:

body: 'name='+name 

如果你要傳輸的數據作爲JSON的Content-Type應改爲application/json