我有一个Node.JS文件,可以输出页面加载分析测试结果。我已将结果存储在results.json
文件中JSON.stringify()
。
launchChromeAndRunLighthouse('https://www.microsoft.com/en-us/', flags, perfConfig).then(results => {
fs.appendFile('results.json', JSON.stringify(results), (err) => {
if(err){ throw err; }
console.log('Data was appended to file!');
var myObj = results.json; //problematic
var JSON_to_HTML = mustache.render('This test was generated at this time: {{generatedTime}}.', myObj); //problematic
});
});
现在我想在浏览器中显示结果,所以我想将JSON翻译成HTML。我想为此使用胡子,但这些线对我不起作用:
var myObj = results.json;
var JSON_to_HTML = mustache.render('Test was generated at this time: {{generatedTime}}.', myObj);
我收到错误“结果未定义”,这样的胡子无法读取JSON文件。我无法使用原始JSON初始化“myObj”,因为它大约有一百万行(我需要稍后为一大堆页面运行测试,因此我现在无法对其进行硬编码)。
我不知道如何将我现在拥有的这个JSON文件翻译成HTML。有没有人有任何想法?我是Node和Mustache的初学者,任何提示都非常感谢。
答案 0 :(得分:0)
很多谷歌搜索让我自己回答。
要读取测试结果的JSON文件并从中创建HTML页面,我必须为此Node模块创建一个package.json文件(运行npm init
)。创建文件后,我在sublime中打开它并编辑scripts
所以CLI命令'build'将获取.json文件,从.mustache文件中获取我想要显示的内容.json文件,并将其粘贴在.html文件中。
"scripts": {
"build": "mustache results.json basicTemplate.mustache > theDisplay.html",
"test": "echo \"Error: no test specified\" && exit 1"
},
results.json是我从字母串入的问题。 basicTemplate.mustache现在是
{{generatedtime}} {{initialurl}}
和theDisplay.html只是一个基本的html模板(如this)。
现在,当我运行node <name of node module>
时,会生成结果文件。然后我运行npm run build
,我刚刚在package.json中创建了这个脚本。这会修改theDisplay.html。您现在应该能够双击Finder中的Display.html,并打开一个浏览器,其中包含生成测试的时间以及测试页面的URL。