【发布时间】:2021-08-31 08:05:39
【问题描述】:
我创建了两个文件 index.js 和 image.js 文件。我在 index.js 文件中调用 image.js 文件。它正在工作,但它没有在 json 文件中显示数据。只有图像变量名称显示在我的 json 文件中。请帮忙!!!
image.js
const axios= require ('axios');
const cheerio=require('cheerio');
const request=require('request');
async function imageNames() {
const resp = await axios.get('https://www.google.com/');
const $ = await cheerio.load(resp.data);
let listImages = [];
$('img').each((i, elem) => {
listImages.push({
name: $(elem).find('a').attr('href'),
dom_data: $(elem).attr('')
})
});
console.log(listImages);
}
module.exports={imageNames}
index.js
const request=require('request');
const axios = require("axios");
const cheerio = require("cheerio");
const fs = require("fs");
const image=require('./image');
const url = "https://www.google.com";
axios.get(url).then((res) => {
const $ = cheerio.load(res.data);
const pageTitle = $("title").text();
image.imageNames();
const contentJSON = {
title: pageTitle.trim(),
url:url.trim(),
image:image
};
const artFinal = JSON.stringify(contentJSON);
const filename = pageTitle.slice(0, 9).trim() + ".json";
fs.writeFileSync(filename, artFinal);
});
google.json file
{"title":"Google","url":"https://www.google.com","image":{}}
它只显示 image.js 文件中的变量数据没有显示在控制台上。我将其保存为 json 格式。
【问题讨论】:
-
const image = require('./image')返回对象,试试这个:const {imageNames} = require('./image);,然后在回调中等待 fn:axios.get().then(async () => { const image = await imageNames() })。也从imageNames返回东西 -
@Eggy 对不起,你能告诉我我需要在哪个文件中编写上面的代码:axios.get().then(async () => { const image = await imageNames() })我是菜鸟,无法按照答案进行操作。如果您可以在我原来的两个文件中进行更改并粘贴相同内容,将会很有帮助。
标签: javascript node.js json axios