node.js - 返回托管在我的服务器上的图像的路径以在前端显示它
问题描述
目前在我的服务器上,我在这些图像的路径下:
/opt/myproject/assets/5259521.jpg
/opt/myproject/assets/5259522.jpg
/opt/myproject/assets/5259523.jpg
我正在使用 nodejs 创建我的 Web 服务。我想知道返回图像路径的方法是什么,以便前端可以在img
标签中显示它们。
我的restAPI可以通过路径访问:
在这里,我需要返回图像路径,以便可以在我的 Web 应用程序中显示它们。
app.use(cors());
app.options('*', cors());
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json());
// Configuración global de rutas
app.use(require('./routes/index'));
const distDirectory = path.join(__dirname, '/public');
app.get('*', function (req, res, next) {
const file_path = path.join(distDirectory, req.url.split('?').shift());
if (fs.existsSync(file_path)) next();
else res.sendFile(path.join(distDirectory, 'index.html'));
});
app.use(express.static(distDirectory));
谢谢
解决方案
要提供静态文件,例如图像、CSS 文件和 JavaScript 文件,请使用 Express 中的 express.static 内置中间件函数。
函数签名是:
express.static(root, [options])
您需要将所有图像放在public
文件夹中或添加您选择的文件夹名称,然后在express.static
中间件中传递静态文件夹。
文件夹的名称Public
只是一个约定,您可以将文件夹的名称设置为任何内容。
例如,使用以下代码在名为 public 的目录中提供图像、CSS 文件和 JavaScript 文件:
app.use(express.static('public'))
并像访问它:
http://localhost:3000/assets/5259521.jpg
我假设您的图像在public/assets
文件夹下。
推荐阅读
- java - CompletionStage,CompletableFuture Void - 返回什么?
- linqpad - LINQPad 不显示所有表
- amazon-web-services - 创建自定义成功 AWS API Gateway 模型
- gitignore - 不同项目的嵌套子文件夹中是否需要 .gitignore?
- python - 如何打印已经返回的函数调用的堆栈跟踪?
- oracle - Oracle SQL Developer 命令行 (SQLcl) - 无法启动 Oracle sql.bat (sqlcl)
- javascript - ExtJS - 我怎样才能让一个面板显示在另一个面板中(它当前显示一个空白屏幕)?
- rabbitmq - rabbitmq-message-deduplication 插件
- google-calendar-api - Google 日历中的“主要”calendarId 和其他 calendarId 有什么区别?
- xpath - XPath - 选择带有内部文本的元素,甚至是子元素的文本