[英]How To Send Array of Object using FormData() From React Js To Nodejs, MongoDB?
[英]How to send formData from Angular 2 to nodejs?
我正在使用此代码:
var creds = "username=" + 'user' + "&password=" + 'password';
var headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
http.post('http://localhost:3000/', creds, {
headers : headers
})
.map(res => res.json())
.subscribe(
data => this.logData(data),
err => this.logError(err),
() => console.log('Quote Complete')
);
NodeJs在this.request.body上得到了json {用户名:'user',密码:'password'}。 但是我需要像{fields:{username:'user',password:'password'}}这样的json
创建指定格式的对象,使用json.stringify从中创建一个字符串,然后将其发送到node.js服务器。
如果只想使用url编码形式,则不能。 实际上,您的Node应用程序会将字符串内容( username=user&password=somepwd
)转换/反序列化为一个简单(平坦)的JavaScripty对象。
为了实现在Node应用程序中接收到的数据所需的内容(特定格式),您需要为请求有效负载切换到application/json
内容类型,如下所述:
var creds = {
fields: {
username: 'user',
password: 'password'
}
}
var headers = new Headers();
headers.append('Content-Type', 'application/json');
http.post('http://localhost:3000/', JSON.stringify(creds), {
headers : headers
})
.map(res => res.json())
.subscribe(
data => this.logData(data),
err => this.logError(err),
() => console.log('Quote Complete')
);
不要忘记在Node应用程序中注册正确的反序列化器。 例如Express:
var express = require('express');
var application = express();
application.use(bodyParser.json());
希望对您有帮助,蒂埃里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.