nodejs 获取服务器文件夹里面图片,并前端进行幻灯展示

本文主要是介绍nodejs 获取服务器文件夹里面图片,并前端进行幻灯展示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在实现一个特别个性的要求,就是读取服务器的文件夹里面的图片,然后前端进行轮播显示,因为客户要求的开发环境特殊一些,纯js的话又实现不了对本地文件夹的读取,所以这里用到了node.js下面我们来看怎么实现的

为了在Node.js中获取服务器文件夹内的图片并在前端进行幻灯展示,我们将采用与之前相似的策略,但这次我会提供一个更加直接的方式,通过后端API来传递图片URL列表给前端,而不是直接解析HTML。这样做的好处是提高了代码的可维护性和安全性。

第一步:设置Node.js服务器
首先,确保你已经安装了Node.jsnpm。接下来,创建一个新的项目目录,初始化npm,并安装Express框架和其它依赖:

mkdir slideshow-server
cd slideshow-server
npm init -y
npm install express multer cors

这里我们额外安装了multer用于处理文件上传(虽然本例中不涉及,但根据需求可能有用),以及cors用于处理跨域问题。

第二步:编写服务器代码
创建一个名为server.js的文件,用于启动Express服务器并提供图片列表API

const express = require('express');
const path = require('path');
const fs = require('fs');
const cors = require('cors');
const app = express();
const port = process.env.PORT || 3000;
const imgDirectory = 'public/images'; // 确保此目录存在且含有图片// 使用CORS中间件
app.use(cors());// 静态文件服务
app.use(express.static(path.join(__dirname, imgDirectory)));// 获取图片列表API
app.get('/api/images', (req, res) => {console.log(req.query.dirs,"传入的参数")const dir = req.query.dirs? req.query.dirs : '';fs.readdir(imgDirectory+'/'+dir, (err, files) => {if (err) {res.status(500).send('无法读取图片目录');} else {// 过滤出图片文件const images = files.filter(file => ['.jpg', '.jpeg', '.png', '.gif'].includes(path.extname(file).toLowerCase()));res.json(images.map(img => `/images/${dir}/${img}`)); // 返回图片URL列表}});
});app.listen(port, () => {console.log(`服务器运行在 http://localhost:${port}`);
});

上面的imgDirectory 指定了图片的根目录,但是我们有时候需要不同的目录层级,所以我默认的添加上了dirs这个参数,但是前提是目录在我们的imgDirectory 这个目录下面

第三步:前端代码
在项目根目录下创建一个public文件夹,用于存放前端资源。然后,在public目录下创建index.htmlscript.js文件。
这里需要注意的是public这个目录就是您的WEB根目录,目录可以随便建立自行修改即可

index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>会议幻灯展示</title><!-- 引入Swiper CSS --><link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css" /><style>body{padding:0;margin:0}/* 自定义样式 */.swiper-container {width: 100%;height: 100%;overflow: hidden;}.swiper-slide img {display: block;width: 100%;height: 100%;object-fit: cover;}</style>
</head>
<body><!-- Swiper容器 --><div class="swiper-container"><div class="swiper-wrapper"><!-- 图片将由JavaScript动态插入 --></div><div class="swiper-pagination"></div></div><!-- 引入Swiper JS 和 自定义脚本 --><script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script><script src="script.js"></script>
</body>
</html>

script.js

document.addEventListener('DOMContentLoaded', async function() {var swiper = new Swiper('.swiper-container', {autoplay: {delay: 1000, // 单位毫秒,设置为5秒},loop: true,pagination: {el: '.swiper-pagination',dynamicBullets: true,},});try {//这里修改的是dirs=xxx 这里是要指定的目录必须真实存在的const response = await fetch('您服务器的地址:端口/api/images?dirs=a');const images = await response.json();console.log(images,"我是图片的地址");images.forEach(imgUrl => {const slide = document.createElement('div');slide.className = 'swiper-slide';const img = document.createElement('img');img.src = imgUrl;slide.appendChild(img);document.querySelector('.swiper-wrapper').appendChild(slide);});swiper.update();} catch (error) {console.error('获取图片列表失败:', error);}
});

整体来说最后实现的效果就是通过接口返回图片列表的json数据,然后前端动态插入进去,咱们这里用到了swiper您可以自行的修改样式实现更好看的更复杂的要求。

共同进步才是关键

这篇关于nodejs 获取服务器文件夹里面图片,并前端进行幻灯展示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1036595

相关文章

前端高级CSS用法示例详解

《前端高级CSS用法示例详解》在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交互和动态效果的关键技术之一,随着前端技术的不断发展,CSS的用法也日益丰富和高级,本文将深... 前端高级css用法在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当