首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在node.js中服务静态文件?

如何在node.js中服务静态文件?
EN

Stack Overflow用户
提问于 2012-10-26 05:51:02
回答 4查看 2.1K关注 0票数 1

在我的应用程序中,用户可以将图像上传到服务器,然后我将上传的文件放在上传文件夹中,如下所示

  • 公共的
  • 上传

但当我服务的时候

代码语言:javascript
运行
复制
<img src='upload/image.jpg'/>

有一个404错误。

我使用快捷键并使用

代码语言:javascript
运行
复制
app.use(express.static(__dirname + '/public'));

这是否意味着我必须把所有上传到公用文件夹,如果有这么多的图像,硬盘无法容纳,我不能把其余的放在另一个服务器?

EN

Stack Overflow用户

发布于 2013-02-11 09:55:33

不,您不必将所有上传的文件都放到公用文件夹中。

Express允许配置多个中间程序,这样您就可以再添加一个中间件来从所需的目录中提供静态内容。

如果您希望在Url路径中指定目录,那么您可以像这样使用目录挂载功能!!

代码语言:javascript
运行
复制
app.use('/upload',express.static(__dirname + '/upload')); 

Ofcouse您可以使用其他服务器来存储上传的文件,并且可以通过向它发送请求来检索这些文件。

代码语言:javascript
运行
复制
app.get('/upload/:fileName',function(req,res) {

     var options = {
        port: 80,
        method : 'GET',
        hostname : "localhost",
        path : "/upload/" + req.params.fileName
     };

    var req = http.request(options,function(response) {     
        response.pipe(res);
    });

    req.on('error',function(err) {
        res.statusCode = 404;
        res.end("Error : file not found");
    }); 

    req.end();
});

此代码不仅会在上传的文件存储在原始服务器上时工作,而且如果您在其他服务器上也有文件的话!

票数 2
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13081465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档