背景
最近在写瀑布流视图,要用到很多图片,想拿到本地图片的数据信息,于是乎就写了Node脚本。就有了数据传输的问题。
解决
- err: 1、当时最先想到的是
import与export,但是目前nodejs还不支持,听说快要支持了。 所以这个行不通。 - 最后实现方法为通过
node的fs这个对象来把数据抛到imgData.json文件中。
- 爬虫把数据写入文件(json,js,xml,txt,log......)
js去导入这些文件(import,require,http)
代码
1、拿到本地文件内的图片信息
//获取项目工程里的图片
var fs = require('fs');//引用文件系统模块
function readFileList(path, filesList) {
var files = fs.readdirSync(path);
files.forEach(function (itm, index) {
var stat = fs.statSync(path + itm);
if (stat.isDirectory()) {
//递归读取文件
readFileList(path + itm + "/", filesList)
} else {
var obj = {};//定义一个对象存放文件的路径和名字
obj.path = path;//路径
obj.filename = itm//名字
filesList.push(obj);
}
})
}
var getFiles = {
//获取文件夹下的所有文件
getFileList: function (path) {
var filesList = [];
readFileList(path, filesList);
return filesList;
},
//获取文件夹下的所有图片
getImageFiles: function (path) {
var fileList = [];
this.getFileList(path).forEach((item) => {
fileList.push(item.filename)
});
return fileList;
}
};
//获取文件夹下的所有图片信息
var imglist=getFiles.getImageFiles("./imgFile/");//放图片的文件
2、利用fs.appendFile把imglist抛到imgData.json中
注意 一定要先把imglist转为字符串抛过去,不然那边拿到的只是[Object]这种。
//1、清空文件数据
fs.writeFile('../js/imgData.json', '', function(){console.log('清空成功')})
//2、把得到的图片对象抛到imgData.json文件中
fs.appendFile('../js/imgData.json', JSON.stringify(imglist), (err) => {
if (err) throw err;
console.log('数据已追加到文件');
});
3、取imgData.json
import imgData from '../js/imgData.json'
console.log(82,imgData)