如何在nodejs表达中提供图像

时间:2015-04-28 13:23:15

标签: node.js express

我有这个代码
    var express = require(' express');     var http = require(' http');

var app = express();
var server = http.createServer(app);

app.use(express.static(__dirname + '/uploads'));

console.log("listen to 8080");
server.listen(8080);

我在/uploads/test.jpg中有我的图片 但是当我去http://localhost:8080/uploads/test.jpg时,我得到了无法获得/uploads/test.jpg

3 个答案:

答案 0 :(得分:9)

static方法指示您将从哪个 root 文件夹提供静态内容。目前,您的图片可以从http://localhost:8080/test.jpg访问。

要从子文件夹提供图像,您需要在static目录中创建此文件夹,例如

app.use(express.static(__dirname + '/public'));

- public
-- uploads
---- test.jpg

答案 1 :(得分:1)

app.use功能默认为' /' 。当一条路线不是' /'如果给出,则只有当路径段位于请求路径名中时,中间件句柄才有用。例如,如果我们在' / example'中安装一个函数它将在/ example上调用,而不是在' /'。所以你的请求是在" /uploads/test.jpg" 要做到这一点

app.use('/uploads', express.static(__dirname + '/public'));

现在中间件安装在' / uploads'和服务以及使用路径&上传的任何请求'喜欢 GET /uploads/test.jpg等

答案 2 :(得分:0)

使用以下代码在名为public的目录中提供图像,CSS文件和JavaScript文件。

var express = require('express');
var app = express();
app.use(express.static('public'));

现在,您可以加载公共目录中的文件:

示例:

localhost:3000/images/kitten.jpg
localhost:3000/css/style.css
localhost:3000/js/app.js