Javascript 如何查看heroku上脚本创建的文件的内容
我有一个node.js脚本使用它Javascript 如何查看heroku上脚本创建的文件的内容,javascript,node.js,heroku,puppeteer,Javascript,Node.js,Heroku,Puppeteer,我有一个node.js脚本使用它 访问网站 刮取一些元素innerText和类 创建一个.txt文件,并将这些刮取的元素保存在该文件中 重复 这可以在本地工作,但在我将应用部署到之后就不行了 我尝试了heroku bash-a myappname,ls来查看内容,它只显示我推送到heroku的文件和文件夹 我还尝试使用heroku git:clone-a myapp来克隆repo,它只克隆并保存了我推送到heroku的代码文件,而我正在写入磁盘的.txt不存在 下面的屏幕截图显示预期的文本文件不
innerText
和类ls
来查看内容,它只显示我推送到heroku的文件和文件夹
我还尝试使用heroku git:clone-a myapp来克隆repo,它只克隆并保存了我推送到heroku的代码文件,而我正在写入磁盘的.txt不存在
下面的屏幕截图显示预期的文本文件不在那里,只有我上传的内容在那里
以下是推送到Heroku的代码:
var http=require('http');
常数fs=要求('fs');
const puppeter=require('puppeter');
异步函数数据(url){
var-gotData=false;
const browser=wait puppeter.launch({args:['--no sandbox']});
const page=wait browser.newPage();
等待页面。转到(url);
//等待所有6个球及其内部文本出现
wait page.waitForFunction(
() => {
返回(
document.querySelectorAll('.ball')[2]。innerText!=''&&
document.querySelectorAll('.ball')[3]。innerText!=''&&
document.querySelectorAll('.ball')[4]。innerText!=''&&
document.querySelectorAll('.ball')[5]。innerText!=''&&
document.querySelectorAll('.ball')[6]。innerText!=''&&
document.querySelectorAll('.ball')[7]。innerText!=''
);
},
{超时:100000}
);
//从左边开始计算六个球的颜色和编号
const[ball1,ball2,ball3,ball4,ball5,ball6]=等待页面。评估(()=>{
const ball1=document.queryselectoral('.ball')[2];
const ball2=document.queryselectoral('.ball')[3];
const ball3=document.queryselectoral('.ball')[4];
const ball4=document.queryselectoral('.ball')[5];
const ball5=document.queryselectoral('.ball')[6];
const ball6=document.queryselectoral('.ball')[7];
//返回颜色及其编号
返回[
{number:ball1.innerText,颜色:ball1.classList[1]。拆分('-')[1]},
{number:ball2.innerText,颜色:ball2.classList[1]。拆分('-')[1]},
{number:ball3.innerText,颜色:ball3.classList[1]。拆分('-')[1]},
{number:ball4.innerText,颜色:ball4.classList[1]。拆分('-')[1]},
{number:ball5.innerText,颜色:ball5.classList[1]。拆分('-')[1]},
{number:ball6.innerText,颜色:ball6.classList[1]。拆分('-')[1]},
];
});
//将时间转换为尼日利亚时区
函数convertz(日期,tzString){
返回新日期(
(日期类型==='string'?新日期(日期):日期)。ToLocalString('en-US'{
时区:tzString,
})
);
}
const convertDate=convertTZ(新日期(),“非洲/拉各斯”);
//将返回的数据保存到变量中
常数结果=
convertDate.getHours()+
':' +
convertDate.getMinutes()+
':' +
convertDate.getSeconds()+
' ' +
[
`${ball1.color}-${ball1.number}`,
`${ball2.color}-${ball2.number}`,
`${ball3.color}-${ball3.number}`,
`${ball4.color}-${ball4.number}`,
`${ball5.color}-${ball5.number}`,
`${ball6.color}-${ball6.number}`,
];
//关闭浏览器
等待浏览器关闭();
//创建一个文件,并使用尼日利亚时区中的今天日期和月份将其命名
变量文件名=
'day-'+convertDate.getDate()+'_'+'month-'+convertDate.getMonth()+'.txt';
//将结果写入文件
fs.appendFile(文件名,结果+'\n',(错误)=>{
如果(错误){
控制台日志(err);
}否则{
gotData=true;
if(gotData==true){
//将数据重置回false
gotData=false;
//重新运行数据
callscrapedatareach();
}
}
});
}
刮取数据(
'https://logigames.bet9ja.com/Games/Launcher?gameId=11000&provider=0&sid=&pff=1&skin=201'
);
函数callscrapedatareach(){
刮取数据(
'https://logigames.bet9ja.com/Games/Launcher?gameId=11000&provider=0&sid=&pff=1&skin=201'
);
}
///*config.httpPort*/
//“在%s模式下侦听端口%d的节点服务器”,this.address().port,app.settings.env;
http.createServer((请求、响应)=>{
if(request.url=='/'&&request.method=='GET'){
writeHead(200,{'Content-Type':'text/html'});
response.end('your app is working','utf-8');
}
}).listen(process.env.PORT | | 3000,()=>{
log(“服务器工作”);
});
请参见Heroku帮助中的
Heroku没有给你真正的磁盘,任何文件写入都不能保证持久
他们建议您使用外部存储,例如AmazonS3。它们提供。请参见Heroku帮助中的
Heroku没有给你真正的磁盘,任何文件写入都不能保证持久
他们建议您使用外部存储,例如AmazonS3。他们提供