gpt4 book ai didi

javascript - 如何在NODEJS中显示来自多个文件的JSON数据

转载 作者:行者123 更新时间:2023-11-28 03:02:49 28 4
gpt4 key购买 nike

过去三天我一直被这个问题困扰, 我正在创建一个简单的应用程序,它显示语言及其主题以及 NODEJS 中该特定语言的最新版本。 所以我创建了 3 个单独的 JSON 文件 1. 对于语言 2. 对于他们的主题 3. 对于最新版本。
我为这 3 个文件创建了 api 和一个简单的 HTML 页面,我可以在其中显示该数据,所以这里是代码。有人可以指导我该怎么做吗......

var express = require('express')
var app = express()


var fs = require('fs')
var path = require('path')

var bodyParser = require('body-parser')

var Languages = require('./public/Languages.json')
var Languages = require('./public/LVersion.json')
var Languages = require('./public/subtopics.json')


app.use(bodyParser.urlencoded({extended:true}));


// Defining HTML file
app.get('/',(req,res)=>{
res.sendFile(__dirname+'/index.html')
})
// Send Responce to user
app.post('/',(req,res)=>{
let v1 = String(req.body.langu)
res.send(v1+' is your Data')

})


var url1 = 'http://localhost:3000/api/languages'
var url2 = 'http://localhost:3000/api/Lversion'
var url3 = 'http://localhost:3000/api/subtopicp'


//Api for getting Languages
app.get('/api/languages',(req,res)=>{
res.sendFile(__dirname+'/public/languages.json')
})

//Api for getting Latest Version
app.get('/api/latestv',(req,res)=>{
res.sendFile(__dirname+'/public/Lversion.json')
})

//Api for getting Sub Topics
app.get('/api/subtopicp',(req,res)=>{
res.sendFile(__dirname+'/public/subtopics.json')
})
//Read and Parse Languages
let lan = fs.readFileSync('./public/Languages.json')
let lang = JSON.parse(lan)
//Read and parse Latest Version
let LV = fs.readFileSync('./public/LVersion.json')
let LVer = JSON.parse(LV)
//Read and parse subtopics
let subt = fs.readFileSync('./public/subtopics.json')
let subtopic = JSON.parse(subt)




var port = 3000
app.listen(port,(req,res)=>{
console.log('App is Listen on localhost: ' +port )
})

这是 HTML 代码。我并不专注于 UI,我只想在浏览器中显示数据。

<html>

<head>
<title>Getting Data From json</title>
</head>

<body>
<h1>Here You Get Latest Technologes , Subtopics and Latest Versions</h1>
<form method="POST">

<h3>OR Select</h3>

<!-- Drop Down -->
<select id="cars" name="Langu">
<option value="C">C</option>
<option value="CPlusPLus">C++</option>
<option value="JAVA">JAVA</option>
<option value="NODE">NODE</option>
</select>
<br><br>


<button>Submit</button>
</form>
</body>

</html>

Json 文件语言.json

{
"Lan": [ "C", "C++", "Java","Python"]
}

LVersion.json

{
"C":{
"LV" : "C 18"
},
"java":{
"LV": "Java SE 13.0.1"
},
"Python":{
"LV": "Python 3.8"
}

}

子主题.json

{
"C": {
"topics": [
"Data Types",
"XML",
"Variables",
"Loops",
"And More"
]
},
"C++" : {
"topics": [
"Constants",
"Oprators",
"Input/Output",
"Arrays",
"Classes",
"Special Members"
]
},
"Java" : {
"topics": [
"Constants",
"Oprators",
"Input/Output",
"Arrays",
"Classes",
"Special Members"
]
},
"Python" : {
"topics": [
"Exceptions",
"Lists",
"Functions",
"Modules",
"Classes",
"Files I/O"
]
}


}

这里我给出了我能提供的所有代码和信息。如果您想要完整源代码和一些解决方案,则该项目的 GitHub 链接: Link谢谢。

最佳答案

所以您现在需要的是从前端的 API 获取数据。您只需要设置一种执行 HTTP 请求的方法。在您的正文中添加 <script>标记为最后一个元素,并在其中插入您的逻辑以从 API 获取数据。

有大量的库和方法可以从网络获取数据,例如 axios 或 jQuery 的方法。由于您的项目非常简单,因此您可以使用 native 项目:use Fetch API ,它具有 Promise 支持,用于获取数据并将其添加到 DOM。

如果您计划支持旧版浏览器,您应该查看 XMLHTTPRequest .

无论如何:看看你的 Node.js 代码,你正在用不同的需求覆盖变量语言。通过这样做,您不会合并所有 JSON 对象。如果您想使用一个对象来包含所有对象,请使用 Object.assign .

关于javascript - 如何在NODEJS中显示来自多个文件的JSON数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60831171/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com