Node.js Nodejs返回角度2请求的未定义值
我想使用http.post方法将来自Ionic 2应用程序的数据发布到服务器,但服务器返回未定义的数据 我曾经尝试发送一个字符串,但结果是一样的 以下是Angular 2客户端代码:Node.js Nodejs返回角度2请求的未定义值,node.js,angular,typescript,ionic2,Node.js,Angular,Typescript,Ionic2,我想使用http.post方法将来自Ionic 2应用程序的数据发布到服务器,但服务器返回未定义的数据 我曾经尝试发送一个字符串,但结果是一样的 以下是Angular 2客户端代码: import { Component } from '@angular/core'; import { NavController, NavParams } from 'ionic-angular'; import { RegisterPage } from '../register/register'
import { Component } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
import { RegisterPage } from '../register/register';
import { Http, Headers } from '@angular/http';
import { ToastController } from 'ionic-angular';
import { User } from '../../providers/user';
@Component({
selector: 'page-login',
templateUrl: 'login.html'
})
export class LoginPage {
private accounts: Object[] = []
private headers: Headers;
private http;
private toast;
public email;
public password;
public user: User;
constructor(public navCtrl: NavController, public navParams: NavParams,
http: Http, public toastCtrl: ToastController) {
this.http = http;
this.toast = toastCtrl;
}
ngAfterViewInit() {
}
toastMessenger(res : string) {
let toast = this.toast.create({
message: res,
duration: 3000
});
toast.present();
}
submit() {
let headers = new Headers();
headers.append("Content-Type", 'application/json');
console.log(this.email)
this.http.post('http://localhost:3000/validation', JSON.stringify(this.email), { headers: headers })
.subscribe(() => {
console.log("Dados enviados com sucesso");
});
}
changeToRegister() {
this.navCtrl.push(RegisterPage);
}
}
这是我的后动词路线:
app.post('/validation', function(req, res) {
console.log(req.body); // => undefined
});
我终于弄错了。在设置主体解析器之前,我正在导入路由
// config/express.js
consign()
.include('infra')
.then('app/routes')
.into(app);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
当集合修复此问题时,服务器返回我想要的json对象
// config/express.js
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
consign()
include('infra')
.then('app/routes')
.into(app);
谢谢大家的帮助。您的
console.log(this.email)
返回了什么?据我所知,从上面的代码中,您从未实际设置过此.email
,因此它会像您看到的那样发布未定义的
。“this.email”返回用户输入:(输入)=“email=$event.target.value”@YagoAzedias check req.query部分您能够从rest客户端发送请求吗?带有“req.query”服务器返回一个无效的javascript对象=>{}