fs.writeFile创建空文件(node.js)
我正在尝试用node.js、cheerio和puppeter编写一个剪贴脚本 目前我遇到的问题是如何使fs.writeFile创建空文件(node.js),node.js,fs,Node.js,Fs,我正在尝试用node.js、cheerio和puppeter编写一个剪贴脚本 目前我遇到的问题是如何使writeFile()函数正常工作 const puppeteer = require('puppeteer'); const $ = require('cheerio'); const fs = require('fs'); const url = 'https://www.made-up-url.com/'; puppeteer .launch() .then(functi
writeFile()
函数正常工作
const puppeteer = require('puppeteer');
const $ = require('cheerio');
const fs = require('fs');
const url = 'https://www.made-up-url.com/';
puppeteer
.launch()
.then(function(browser) {
return browser.newPage();
})
.then(function(page) {
return page.goto(url).then(function() {
return page.content();
});
})
.then(function(html) {
let scrapedTitle = $('h1', html).each(function() {
return $(this).text();
});
let scrapedDesc = $('#something-else > div > p', html).each(function() {
return $(this).text();
});
// Both console logs are outputted as strings, as expected
console.log(scrapedTitle[0].children[0].data); // "Some title"
console.log(scrapedDesc[0].children[0].data); // "The description is like this."
fs.writeFile("data.json", JSON.stringify(scrapedTitle[0].children[0].data), 'utf8', function(err) {
if(err) {
return console.log(err);
}
console.log("The data has been scraped and saved successfully! View it at './data.json'");
});
process.exit();
})
.catch(function(err) {
console.log(err);
process.exit();
});
writeFile()
以前使用过类似这样的fs.writeFile(“data.json”、json.stringify(html)、'utf8',function(err){
,但现在这似乎也不起作用。当我运行此脚本时,正如预期的那样创建了该文件,但它始终是空的,即使这两个console.log()
显示应该有有效字符串要写入。没有错误。有什么想法吗?您有下面一行,进程。退出();
正在文件写入操作之前关闭进程:
fs.writeFile("data.json", JSON.stringify(scrapedTitle[0].children[0].data), 'utf8', function (err) {
if (err) {
return console.log(err);
}
console.log("The data has been scraped and saved successfully! View it at './data.json'");
});
process.exit();
您可以将其更改为类似以下内容,以便在关闭文件之前完成文件写入操作:
fs.writeFile("data.json", JSON.stringify(scrapedTitle[0].children[0].data), 'utf8', function(err) {
if(err) {
return console.log(err);
process.exit();
}
console.log("The data has been scraped and saved successfully! View it at './data.json'");
process.exit();
});
您有下面一行,
进程.exit();
在文件写入操作之前关闭进程:
fs.writeFile("data.json", JSON.stringify(scrapedTitle[0].children[0].data), 'utf8', function (err) {
if (err) {
return console.log(err);
}
console.log("The data has been scraped and saved successfully! View it at './data.json'");
});
process.exit();
您可以将其更改为类似以下内容,以便在关闭文件之前完成文件写入操作:
fs.writeFile("data.json", JSON.stringify(scrapedTitle[0].children[0].data), 'utf8', function(err) {
if(err) {
return console.log(err);
process.exit();
}
console.log("The data has been scraped and saved successfully! View it at './data.json'");
process.exit();
});