node.js - Node/Express 应用程序没有响应 post 方法
问题描述
我有一个 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/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'。谁能知道问题可能是什么?
解决方案
正如评论中所说,您需要订阅从返回的 Observable
this.http.post...
所以至少你必须这样做。
saveRecommend('rec').subscribe();
推荐阅读
- c# - Fluent nHibernate:对不同架构中结构相同的表使用相同的映射文件
- javascript - 如何在javascript中拒绝用户输入的无效字符串
- html - 菜单向下滚动页面
- css - 屏幕缩小时如何垂直转换3个水平项目?
- r - 如何将具有父属性的XML属性解析为R中的数据框
- rest - MVC 核心 rest api 中的多个有效负载
- amazon-web-services - 无法连接到 AWS/RDS 数据库实例
- amazon-web-services - 如何增加 AWS lambda 部署包的最大大小 (RequestEntityTooLargeException)?
- log4j - Log4J 2.8 RollingFile 不应存档到压缩文件
- django - 如何从 Django 发送异步 HTTP 请求并在 python2.7 中等待结果?