Node.js 如何在express4中设置上载路径?

Node.js 如何在express4中设置上载路径?,node.js,file-upload,express,Node.js,File Upload,Express,我想让express作为http://localhost/uploads/image.png从动态目录中提供文件(基于环境)process.env.NODE\u UPLOAD\u DIR类似于: /home/user/data/uploads但该应用程序由~/www/domain.com提供 这可能吗 我尝试过这个,但当我请求它时,它只是重定向到浏览器中的主页(如果这有什么不同的话,它是一个角度应用程序): 如果希望在URI和文件系统路径中同时包含“上载”部分,则需要将其用作前缀: app.us

我想让express作为
http://localhost/uploads/image.png
从动态目录中提供文件(基于环境)
process.env.NODE\u UPLOAD\u DIR
类似于:

/home/user/data/uploads
但该应用程序由
~/www/domain.com
提供

这可能吗

我尝试过这个,但当我请求它时,它只是重定向到浏览器中的主页(如果这有什么不同的话,它是一个角度应用程序):

如果希望在URI和文件系统路径中同时包含“上载”部分,则需要将其用作前缀:

app.use('/uploads', express.static(
  path.join(process.env.NODE_UPLOAD_DIR, 'uploads'))
);

这工作了,不确定到底发生了什么。要把URI路径和文件系统路径保持在你的头脑中是很困难的,但是请记住,默认情况下,<代码>静态< /C> >只会在它的根目录中服务文件,而不考虑路径的文件系统根DIR部分。它期望一个direct img.jpg位于配置的static dir中,因此如果您向URL添加前缀,那么中间件也需要它。谢谢。有道理。我可以使用
/image.png
而不是
/uploads/images.png
,这是它最初为我做的事情。
app.use('/uploads', express.static(
  path.join(process.env.NODE_UPLOAD_DIR, 'uploads'))
);