Node/Express 应用未响应 post 方法
Node/Express app not responding to post method
我有一个 Node/Express 后端监听 Angular8 前端。但是,当我尝试从 angular 客户端向 POST 方法发送数据时,服务器没有任何响应。该函数不显示已到达,也不向控制台打印任何消息。
angular8 服务中的函数是:
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/ExpressPOST方法是:
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 未找到”。
谁能知道问题出在哪里?
您应该将值的类型确定为return。
试着写
saveRecommend(rec:any):Observable<Recommend> {}
在 type-script 中,确定 type[=18= 非常重要] 你的 functions/variables
如评论中所述,您需要订阅从返回的 Observable
this.http.post...
所以至少你必须这样做。
saveRecommend('rec').subscribe();
我有一个 Node/Express 后端监听 Angular8 前端。但是,当我尝试从 angular 客户端向 POST 方法发送数据时,服务器没有任何响应。该函数不显示已到达,也不向控制台打印任何消息。 angular8 服务中的函数是:
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/ExpressPOST方法是:
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 未找到”。 谁能知道问题出在哪里?
您应该将值的类型确定为return。
试着写
saveRecommend(rec:any):Observable<Recommend> {}
在 type-script 中,确定 type[=18= 非常重要] 你的 functions/variables
如评论中所述,您需要订阅从返回的 Observable
this.http.post...
所以至少你必须这样做。
saveRecommend('rec').subscribe();