Angular|Express|Mongoose 得到 HttpErrorResponse 错误状态:404

Posted

技术标签:

【中文标题】Angular|Express|Mongoose 得到 HttpErrorResponse 错误状态:404【英文标题】:Angular|Express|Mongoose got HttpErrorResponse error status: 404 【发布时间】:2021-05-25 09:01:16 【问题描述】:

有人遇到过这样的问题吗?我正在尝试使用 img 从表单上传数据。在后端使用multer(用于img)。我的帖子请求运行良好并将数据保存到数据库。但是,我对fetch 有很大的问题data

    我的发帖请求
router.post('/admin-product-data', multer( storage: storage ).single('image'), (req, res) => 
  console.log(req.body)
  const url = req.protocol + "://" + req.get("host");
  const product = new Product(
      size: req.body.size,
      group: req.body.group,
      classification: req.body.classification,
      pattern: req.body.pattern,
      variety: req.body.variety,
      model: req.body.model,
      product_code: req.body.product_code,
      price: req.body.price,
      imagePath: url + "/images/" + req.file.filename
  );
  product.save()
      .then(createdProduct => 
          res.status(200).json(
              message: 'admin-product data fetched successfully',
              data: 
                  ...createdProduct,
                  id: createdProduct._id
              
          )
      )
);

然后是数据库中数据的外观

_id:60348211ea5d9a6e6ea3e079
size:12
group:dsfsf
classification:sdfgds
pattern:sdfag
variety:afdgfdag
model:adfgfda
price:12
imagePath:http://localhost:3000/images/10.jpg-1614053905362.jpg
__v:0

这是我的获取路线(即使我将console.log() 放入正文function,他也没有响应;

router.get("/admin-product-data", (req, res, next) => 
  Product.find().then(documents => 
      console.log(documents);
      res.status(200).json(
          message: "Posts fetched successfully!",
          posts: documents
      );
  );
);

当我尝试通过邮递员取货时,我的console 中有一些buffer logs -

>    <Buffer 3c 21 64 6f 63 74 79 70 65 20 68 74 6d 6c 3e 0a 3c 68 74 6d
> 6c 20 6c 61 6e 67 3d 22 65 6e 22 3e 0a 3c 68 65 61 64 3e 0a 20 20 3c
> 6d 65 74 61 20 63 68 ... 8791 more bytes>

在前端 -

> GET http://localhost:4200/admin-product-data 404 (Not Found) and
> HttpErrorResponse headers: HttpHeaders, status: 404, statusText: "Not
> Found", url: "http://localhost:4200/admin-product-data", ok: false, …

谢谢大家!

【问题讨论】:

【参考方案1】:

我预计问题与注册这些路由有关,但由于发布请求正在工作,我建议将 get 请求放在同一个文件中(如果它不存在)

【讨论】:

我在自己的设置中尝试了相同的代码,效果很好

以上是关于Angular|Express|Mongoose 得到 HttpErrorResponse 错误状态:404的主要内容,如果未能解决你的问题,请参考以下文章

通过 express、mongoose 和 angular 删除 mongo 文档时出现 404

Express/Mongoose - 错误:传入的参数必须是 12 个字节的单个字符串

错误状态:使用 Node.js (express)、Angular 和 MongoDB 的 PUT 请求返回 404

如果通过,如何强制 Mongoose 忽略 __v?

Mongoose & Express:从子文档发布数据

Mongoose & Express:从子文档发布数据