【发布时间】:2018-08-08 17:46:17
【问题描述】:
这个问题不一样:Load local JSON file into variable
我刚刚尝试实施该更改,但什么也没...
我发现当我通过网络浏览器运行我的 json 字符串结果时,我得到了
Uncaught ReferenceError: require is not defined
我使用 Node.js 作为运行它的平台。
在调查了这个之后,我仍然没有进一步前进。我不想使用 Browserfy 或 webpack。而且我没有使用 Jquery。
当我将我的两个 json 字符串硬编码到 index.js 中时,这很有效。但是我需要它是可变的。
我需要一种纯 JavaScript 方式来读取 .json 文件,而无需使用 require。 如我所见
let fs = require('fs');
这将使我能够读取文件,但这是必需的......
如果您可以提出任何建议,我在下面有我的 HTML 和 Index.js 文件。
网页.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test Out Put to HTML Page</title>
</style>
</head>
<body>
<div id ='TestResults'>
<div id = 'TestOutput'>Nothing Yet</div>
</div>
<div id ='ErrorResults'>
<div id = 'ErrorOutPut'>Nothing Yet</div>
</div>
<script type = 'text/javascript' src = 'index.js'></script>
</body>
</html>
Index.js
let myJsonString = require('../../ResultsArray/ResultsArray');
let myJsonStringError = require('../../ResultsArray/ErrorArray');
function result(results){
if(results === 'YesNo')
{
return 'Passed'
}
if(results === 'NoYes')
{
return 'Failed'
}
else
{
return 'Unknown'
}
}
function time (value){
// 1- Convert to seconds:
let seconds = (value / 1000).toFixed(2);
// 2- Extract hours:
let hours = parseInt( seconds / 3600 ); // 3,600 seconds in 1 hour
seconds = seconds % 3600; // seconds remaining after extracting hours
// 3- Extract minutes:
let minutes = parseInt( seconds / 60 ); // 60 seconds in 1 minute
// 4- Keep only seconds not extracted to minutes:
seconds = (seconds % 60).toFixed(2);
return ([hours+":"+minutes+":"+seconds]);
}
function testTemplateErrors (test){
return `
<tr>
<td class='TestGroup'>${test.Folder}</td>
<td class='TestName'>${test.Test_Name}</td>
<td class='TestsStatus'>${test.Running}</td>
<td class='TestRunTime'>${time(test.Run_Time)}</td>
<td class= 'TestResult'>${result(test.Passed + test.Failed)}</td>
</tr>
`
}
function testTemplateResults (test){
return `
<tr>
<td class='TestGroup'>${test.Folder}</td>
<td class='TestName'>${test.Test_Name}</td>
<td class='TestsStatus'>${test.Running}</td>
<td class='TestRunTime'>${time(test.Run_Time)}</td>
<td class= 'TestResult'>${result(test.Passed + test.Failed)}</td>
</tr>
`
}
if(myJsonString && myJsonString.length)
{
document.getElementById('TestResults').innerHTML = `
<h1 class='ContentTitle'> Regression Tests (${myJsonString.length} Tests Ran)</h1>
<table><tr>
<th>Result Folder Name</th>
<th>Result Test Name</th>
<th>Result Running</th>
<th>Result Run Time</th>
<th>Result Result</th>
</tr><tr>
${myJsonString.map(testTemplateResults).join('')}
</tr></table>
<p class='footer'> These ${myJsonString.length} Results were added recently. </p>
`
}
if(myJsonStringError && myJsonStringError.length)
{
document.getElementById('ErrorResults').innerHTML = `
<h1 class='ContentTitle'> Error Results (${myJsonStringError.length} Errors Occurred)</h1>
<table><tr>
<th>Error Folder Name</th>
<th>Error Test Name</th>
<th>Error Running</th>
<th>Error Run Time</th>
<th>Error Result</th>
</tr><tr>
${myJsonStringError.map(testTemplateErrors).join('')}
</tr></table>
<p class='footer'> These ${myJsonStringError.length} Results were added recently. </p>
`
}
【问题讨论】:
标签: javascript html node.js