在服务器端,Req.body收到为{} [英] At server side, Req.body received as { }

查看:60
本文介绍了在服务器端,Req.body收到为{}的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

import {
  Injectable
} from '@angular/core';
import {
  Http,
  XHRBackend,
  RequestOptions,
  Request,
  RequestOptionsArgs,
  Response,
  Headers
} from '@angular/http';
import {
  Observable
} from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';

import {
  EmployeeSchema
} from '../schemas/EmployeeSchema';

@Injectable()
export class HttpService extends Http {

  headers = new Headers();
  constructor(public backend: XHRBackend, options: RequestOptions) {
    super(backend, options);
    let token = localStorage.getItem('realtoken');;
    options.headers.set('Authorization', ` ${token}`);

  }
  post(url: string, body:Object, options ? : RequestOptionsArgs): Observable < Response > {
    this.headers.append('Content-Type', 'application/json');
    let token = localStorage.getItem('realtoken');
    if (typeof url === 'string') {
      if (!options) {
        options = {
          headers: this.headers
        };
      }
      options.headers.set('Authorization', ` ${token}`);
    }
    return super.post(url, body, options)
      .catch(this.catchAuthError(this));
  }
  
  private catchAuthError(self: HttpService) {
    return (res: Response) => {
      if (res.status === 401 || res.status === 403) {
        console.log(res);
      }
      return Observable.throw(res);
    };
  }

}

添加员工时,在服务器端收到的 req.body 内容为 {} ,这是服务器端代码

on adding an employee, req.body content is {} when received at server side, here is the server side code

var mongoose = require('mongoose');
var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');


//schema-models
var employeeCollection = require('../../model/employee.model.js');
var organizationCollection = require('../../model/organization.model.js');

router.post('/new', function(req, res) {
  var bodycontent = req.body;
  var addcontent = new employeeCollection(add);
  console.log(bodycontent); //here req.body is empty {}
  addcontent.save(function(err, data) {
    if (err) {
      res.send(err);
    } else {
      console.log('data', data);
      res.json(data);
    }
  });
});

module.exports = router;

授权后,路由将启动并转到上述给定的post方法,此处 req.body 为空的 {} .

After authorization, the route initiated and goes to the post method given above, here the req.body is empty {}.

推荐答案

var mongoose = require('mongoose');
var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');

//添加bodyparser中间件

 var app = express();
 app.use(bodyParser.urlencoded());
 app.use(bodyParser.json());



//schema-models
var employeeCollection = require('../../model/employee.model.js');
var organizationCollection = require('../../model/organization.model.js');

router.post('/new', function(req, res) {
  var bodycontent = req.body;
  var addcontent = new employeeCollection(add);
  console.log(bodycontent); //here req.body is empty {}
  addcontent.save(function(err, data) {
    if (err) {
      res.send(err);
    } else {
      console.log('data', data);
      res.json(data);
    }
  });
});

module.exports = router;

这篇关于在服务器端,Req.body收到为{}的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆