我已经创建了两个文件,一个是index.js文件,另一个是image.js file.The数据存储在json文件中。
index.js
const image=require('./image');
const request=require('request');
const axios = require("axios");
const cheerio = require("cheerio");
const fs = require("fs");
const url = "https://www.google.com";
axios.get(url).then((res) => {
const $ = cheerio.load(res.data);
const pageTitle = $("title").text();
const imageFile=image.imageNames();
console.log(imageFile)
const contentJSON = {
title: pageTitle.trim(),
url:url.trim(),
listImages:listImages
};
const artFinal = JSON.stringify(contentJSON);
const filename = pageTitle.slice(0, 9).trim() + ".json";
fs.writeFileSync(filename, artFinal);
});
image.js
const request=require('request');
const axios = require("axios");
const cheerio = require("cheerio");
const url = "https://www.google.com";
axios.get(url).then((res) => {
const $ = cheerio.load(res.data);
function imageNames(){
var listImages=[];
$('*').find('img').each(function (index, element) {
var img={
name: $(element).attr('href'),
dom_data:$(element).attr(''),
};
listImages.push(img)
});
}
module.exports={imageNames};
});
我尝试调用函数imageNames()从image.js文件到index.js file.It给我一条错误信息说它不是一个函数。我不明白为什么我得到这个错误.Please帮助!!
发布于 2021-06-14 12:49:45
您不能从模块异步导出。
const image=require('./image');
读取module.exports
的值,然后 module.exports={imageNames};
为其分配新值。
您可以导出axios.get().then()
的返回值(这将是promise),并将module.exports={imageNames};
更改为return imageNames
,以便promise解析为您想要的函数。
不过,运行imageNames
并将promise解析为结果数组可能会更好。
https://stackoverflow.com/questions/67970417
复制相似问题