如何在nodejs表达中提供图像

use*_*341 4 node.js express

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

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);
Run Code Online (Sandbox Code Playgroud)

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

Jam*_*mes 12

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

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

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

- public
-- uploads
---- test.jpg
Run Code Online (Sandbox Code Playgroud)


Imp*_*uck 6

app.use 函数的默认值为 '/' 。当给出除“/”之外的路由时,仅当路径段位于请求路径名中时,中间件句柄才有用。例如,如果我们在“/example”中挂载一个函数,它将在/example上调用,而不是在“/”上调用。所以你的请求是在“/uploads/test.jpg”来做到这一点

app.use('/uploads', express.static(__dirname + '/public'));
Run Code Online (Sandbox Code Playgroud)

现在,中间件安装在“/uploads”和服务以及使用路径“/uploads”发出的任何请求,例如GET /uploads/test.jpg 等。