簡體   English   中英

req.body在轉發到另一個函數時變得不確定

[英]req.body gets undefined when forwarded to another function

代碼看起來像這樣


saleComponent.html


<form class="form-horizontal" #salesdetails="ngForm" (ngSubmit)="onSubmit(salesdetails.value)">
        <div class="form-group" *ngFor="let label of labels">
            <label for="item1" class="col-sm-3 control-label">{{label}}</label>
            <div class="col-sm-9">
                <input type="text" value="" name="{{label}}" id="item1" ngModel>
            </div>
        </div>
        <div class="form-group">
            <div class="col-sm-offset-3 col-sm-10">
                <button type="submit" class="btn btn-default">Add</button>
            </div>
        </div>
</form>

SaleComponent.ts


import { Component, OnInit } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';
import { SalesService } from '../sales.service';
import { Sale } from '../model/sale';

@Component({
  selector: 'app-sales',
  templateUrl: 'frontend/js/sales/sales.component.html',
  styleUrls: ['frontend/js/sales/sales.component.css']
})
export class SalesComponent implements OnInit {
    form;
    labels;
    sales : Sale[];

    constructor(private salesService: SalesService){}

    ngOnInit(){
        this.getLabels();
    }

    getLabels(){
        this.salesService.getLables().subscribe(labels => {
            this.labels = labels[0].attributes;
            console.log(labels);
        });

    }

    getSales(){

    }


    onSubmit(formValues){
        this.salesService.addSale(formValues).subscribe(response => {
            console.log(response);
        });
    }
}

SaleService.ts


import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
import { Sale } from './model/sale';

@Injectable()
export class SalesService {
  private lablesUrl = "/sale/labels";
  private saleUrl = "/sale";

  constructor(private http: HttpClient) {
  }

  getLables(){
    return this.http.get(this.lablesUrl);
  }

  addSale(formValues){
    return this.http.post(this.saleUrl, formValues);
  }

  getSales(): Observable<Sale[]> {
    let sales = this.http.get<Sale[]>(this.saleUrl/*, this.authservice.options*/);
    console.log(sales)
    return sales;
  }

  deleteItems(idArray){
    return this.http.delete(this.saleUrl,idArray/*, this.authservice.options*/);
  }

}

routefile.js


route.post('/ sale',saleDao.postSale);

saleDao.js


在saleDao.js中,存在一個名為postSale的功能,其中存在一個功能,其名稱為ModifyLabels(),如下所示。

function postSale(req,res){
    console.log(req.body);//output the body of the request
    utility.modifyLabels(req);
}

Utility.js

function modifyLabels(req){
   console.log(req.body); //outputs undefined;
}

我不知道為什么req.body顯示此行為

我有類似的問題。 由於某種原因,數據已被清除,但沒有任何結果。 為了解決這個問題,我使用了如下的JSON對象:

function postSale(req,res){
    console.log(req.body);//output the body of the request
    utility.modifyLabels(JSON.stringify(req));
}

function modifyLabels(req){
   console.log(JSON.parse(req).body);
}

希望對您也有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM