[英]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.