如何访问Express项目image文件夹下的图片

引言

我们在自己做前后端分离的项目时,前端可以使用vue来创建前端项目,随着node.js的发展,基于node.js的express框架火了起来,我们可以通过vue+express来创建一个完整的项目,在前端项目中,我们有时需要去拿到后端的图片,怎么解决呢?

解决方案

废话不多说,直接上解决方案

首先,请看一下express的目录

如果想通过浏览器或者前端项目访问到express中的图片,我们首先需要将你想访问的文件夹指定成静态资源,服务器才可以将他返回给前端或者浏览器,我们需要在app.js中添加如下代码

app.use(express.static(path.join(__dirname, 'public')));

将我们的public文件夹指定为静态资源,并且指定为根目录,然后我们就可以通过浏览器去访问imgs文件夹中的图片了。 注意!!!!!!!!,因为public指定为了根目录,所以我们浏览器中的地址,只需要写localhost:3000/imgs/test1.png就可以访问到了,我这里启动的默认端口是3000,大家可以根据自己的设置去更改

如果想在vue项目中去展示图片,首先需要解决一下跨域问题,然后将路径赋值给图片的src就可以显示了! 

要在Vue中上传图片项目目录下,你需要使用一个后端服务(如Node.js)来实现文件上传功能。以下是一个简单的实现步骤: 1. 在Vue组件中创建一个文件上传表单,例如: ``` <template> <div> <form @submit.prevent="uploadFile"> <input type="file" ref="fileInput" accept="image/*"> <button type="submit">上传</button> </form> </div> </template> ``` 2. 在Vue组件中编写一个方法来处理上传文件的逻辑,例如: ``` <script> import axios from 'axios'; export default { methods: { async uploadFile() { const file = this.$refs.fileInput.files[0]; const formData = new FormData(); formData.append('file', file); try { const response = await axios.post('/api/upload', formData); console.log(response.data); } catch (error) { console.error(error); } }, }, }; </script> ``` 3. 在后端服务中创建一个路由来处理文件上传请求,例如: ``` const express = require('express'); const multer = require('multer'); const path = require('path'); const app = express(); const upload = multer({ dest: path.join(__dirname, 'uploads'), }); app.post('/api/upload', upload.single('file'), (req, res) => { res.json({ filename: req.file.filename, path: req.file.path, }); }); app.listen(3000, () => { console.log('Server started on port 3000'); }); ``` 在这个例子中,文件将上传到服务器上的`uploads`文件夹中。你可以根据你的需求更改上传路径和文件名。注意,这个例子只是一个简单的示例,你可能需要添加更多的逻辑来确保文件上传的安全性和可靠性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值