gpt4 book ai didi

javascript - node.js - 如何将多个图像发送到服务器上的页面

转载 作者:太空宇宙 更新时间:2023-11-04 03:27:16 25 4
gpt4 key购买 nike

如何将图像与 html 一起发送到我的 node.js 服务器上的页面?如何使用express static发送图像? (这里需要一个例子)

服务器端->

app.get('/', function (req, res) {
res.sendFile(__dirname + '/login.html');
});

app.post('/m', function (req, res) {

res.sendFile(__dirname + '/m/a.png');
res.sendFile(__dirname + '/m/b.png');
res.sendFile(__dirname + '/m/c.png')
res.sendFile(__dirname + '/m/d.html');
});

最佳答案

在网络服务器中,您不仅仅将多个图像发送到页面。相反,浏览器请求页面 HTML,解析它,找到 <img> HTML 中的标记,然后分别请求每个图像,并且您的 Web 服务器通过发送请求的图像来响应每个单独的图像请求。

如果您将所有图像放在一个公共(public)文件夹中,则可以使用express.static()用一行代码处理所有图像请求。例如这样的一行代码:

app.use("/image", express.static(path.join(__dirname, "public")));

将为如下 URL 提供所有图像请求:

/image/a.png
/image/b.png

通过查找匹配的 a.pngb.png在下面的“公共(public)”子目录中__dirname (这是脚本的目录)。您可以阅读更多关于 express.static() here 。显然,您可以使用要使用的 URL 的路径以及找到图像的路径。两者必须共同努力才能express.static()可以在服务器硬盘上您放置的相应位置找到正确的图像。

在理解app.use()中的单独路径组件如何理解时,经常会出现一些困惑。和express.static()一起工作。在上面的示例中,"/image"将成为请求 URL 的一部分,并且此 app.use("/image", ...)告诉 Express 您想要将此特定中间件应用于以 /image 开头的任何请求路径.

然后path.join(__dirname, "public")正在讲述express.static()获取 /image 之后的其余 URL 路径并在子文件夹 public 中查找它在目录 __dirname 下。所以,如果浏览器请求 /image/a.pngapp.use()语句将触发,因为 /image匹配该 URL,然后 express.static()将尝试查找路径 a.png 的剩余部分在您告诉它查找的目录中。

在您的服务器硬盘上,它看起来像这样:

 /myproject/
app.js
login.html
/public
a.png
b.png

我在与 app.js 相同的目录中显示了 login.html,只是因为这就是您当前编写的代码的方式。我个人不会将任何公共(public)文件与我的服务器脚本放在同一目录中,因为我希望很容易不犯错误并意外地将我的服务器文件公开给公众。

我通常会这样做:

 /myproject/
app.js
/public
login.html
a.png
b.png

app.use("/image", express.static(path.join(__dirname, "public")));

app.get('/', function (req, res) {
res.sendFile(path.join(__dirname, "public", "login.html"));
});

或者,就让express.static()也提供 login.html 文件。

关于javascript - node.js - 如何将多个图像发送到服务器上的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43022482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com