首页 > 解决方案 > 如何获取其他文件夹中的上传图像?表达静态问题

问题描述

我目前有 2 个文件夹,一个包含公用文件夹和服务器文件夹的命名项目。我目前正在使用 post 方法来上传文件(图像)。这些是我的 2 个文件夹路径:
project/router/index.jsproject/client/public/uploads

我用过 app.use(express.static('public')); 所以我project/router可以访问我的公用文件夹。问题是我真的不知道如何告诉我的函数使用的路径。当我这样做时, await fs.writeFile(`http://localhost:8080/uploads/${request.files[0].originalname}`, data);我的路由器使用端口 3000,我的客户端文件夹使用端口 8080。最后我的函数使用了错误的路径:

server\http:\localhost:8080\uploads\IMG_20200813_0006.jpg'我想改用这个project/client/public/uploads

谢谢

标签: javascriptvue.jsexpress

解决方案


await fs.writeFile('http...') 是双重失败:)

如果你想使用 await 你需要使用 promises : await fs.promises.writeFile()

你不能写到http,它没有任何意义。为此,您应该使用节点的 http 模块或更简单的模块(例如 axios)发出正确的请求。

axios({
  method: 'post',
  url: '/user/12345',
  data: {
    firstName: 'Fred',
    lastName: 'Flintstone'
  }
});

为什么不直接使用呢?

await fs.promises.writeFile(`project/client/public/uploads/${request.files[0].originalname}`, data)

推荐阅读