Node作为后端开发时,可以采用读取图片文件,并转为base64编码,使得前端得到展示

运用到的模块分别有fspathmime-types

mime-type需要额外安装,可于项目根目录运行:

1
npm install --save mime-type

并且考虑到后续的读取转化的需要,可将方法使用promise异步,并且在数量不定时可以使用promise.all()进行异步等待

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const fs = require('fs')
const path = require('path')
const mineType = require('mime-types')
module.exports = {
base64img: function (file) {
var base64imgpromise = new Promise(function (resolve, reject) {
var result
// 判断传入路径是否为空,空即不存在
if (!file) {
result = ''
resolve(result)
}
// 转换路径
file = path.join(__dirname, '../', file)
let filePath = path.resolve(file)
fs.readFile(path.resolve(filePath), 'base64', function (err, data) {
if (err) {
console.log(err + '读取错误')
result = {
code: '1',
data: {
},
msg: '服务器出错'
}
reject(result)
}
result = 'data:' + mineType.lookup(filePath) + ';base64,' + data
resolve(result)
})
})
return base64imgpromise
}
}

当最终我们得到了base64编码的图片后,既可以发送回前端,对img标签的src进行绑定base64,从而在前端页面展示