将数据从服务器/应用程序.js传递到控制器 Angular-fullstack + multer

Passing data from server/app.js to controller Angular-fullstack + multer

本文关键字:控制器 Angular-fullstack multer js 数据 服务器 应用程序      更新时间:2023-09-26

我正在努力将文件名从服务器/应用程序.js传递到客户端/应用程序中的控制器/

我正在使用 Multer 来处理工作正常的文件上传,但我需要将文件名传回客户端以在下一个视图中显示它。

这是我的代码:

服务器/应用程序.js

app.use(multer({ dest: 'client/assets/uploads',
 rename: function (fieldname, filename) {
    return filename+Date.now();
  },
    onFileUploadStart: function (file) {
      console.log(file.originalname + ' is starting ...')
    },
    onFileUploadComplete: function (file) {
      console.log(file.fieldname + ' uploaded to  ' + file.path)
      done=true;
    }
}));

app.post('/api/photo',function(req,res){
  if(done==true){
    photoName = req.files.userPhoto.name;
    res.json(photoName);
  }
});

显示了新的文件名,但我需要它以可用的形式出现,当我在做所有这些服务器端时,我的控制器中没有任何内容来处理传入的响应。

任何帮助将不胜感激。

好的,

所以在与这个问题斗争了一整天之后,我有一个肮脏的修复程序,所以我想我会与你分享它,但真的必须有一种更干净、更优雅的方式来做到这一点:

app.post('/api/photo',function(req,res){
  if(done==true){
    photoName = req.files.userPhoto.name;
    photoName = encodeURIComponent(photoName);
    res.redirect('../course?img=' + photoName);
  }
});

只需在查询字符串中发送我需要的数据并在客户端获取它。

如果有人可以对此进行改进,请发布。

干杯。