簡體   English   中英

Node/Express 應用程序沒有響應 post 方法

[英]Node/Express app not responding to post method

我有一個 Node/Express 后端監聽 Angular8 前端。 但是當我嘗試從 angular 客戶端向 POST 方法發送數據時,我沒有得到服務器的響應。 function 不顯示已到達,也不向控制台打印任何消息。 angular8 服務中的 function 是:

import { Injectable } from '@angular/core';
import { Recommend } from '../classes/recommend';
import { HttpClient } from '@angular/common/http';

@Injectable({
  providedIn: 'root'
})
export class RecommendsService {

  url:string = "http://localhost:3000/recommend/";
  constructor(private http:HttpClient) { }
  saveRecommend(rec:any)  { 
  return  this.http.post<Recommend>(this.url + "saveRecommend", rec);
  }
}

Node/Express POST 方法是:

var express = require('express')
var router = express.Router()
var recommendDomain = require('../domain/recommend');

router.post('/saveRecommend', async function(req, res){
    console.log("I am here")
    var response = await recommendDomain.addRecommend(req.body);
    res.send(response);
})

module.exports = router;

我配置路由器的 app.js 頁面是:

var express = require('express')
var bodyParser = require('body-parser')
var cors = require('cors')
var app = express()

app.use(bodyParser.json())
app.use(cors())
app.use(express.static('public'))


console.log("server 1")

var recommendAction = require('./action/recommend')

app.use('/recommend', recommendAction);

app.get('/', (req, res) => res.send('Api Project Works'))
module.exports = app

我的應用程序中的其他類似 POST 和 GET 方法確實可以正常工作。 但最煩人的部分是,在瀏覽器中運行應用程序並不會在控制台中顯示任何錯誤。 甚至不是'404 not found'。 誰能知道問題可能是什么?

您應該確定要返回的值的類型。 嘗試編寫saveRecommend(rec:any):Observable<Recommend> {}type -script 中確定函數/變量的類型非常重要

正如評論中所說,您需要訂閱從this.http.post...

所以至少你必須這樣做。

saveRecommend('rec').subscribe();

暫無
暫無

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

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