2017-06-15 42 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