我正在尝试将具有数据的对象从Node.js服务器发送到js文件(以便在前端使用此数据)。
在文件 main.js 中,我正在操作DOM。我执行以下请求:
let dataName = [];
let request = async ('http://localhost:3000/') => {
const response = await fetch(url);
const data = await response.json();
dataName = data.name;
}
let name = document.getElementById('name');
name.textContent = dataName;
然后在文件 server.js 中,我有一个对象:
data = [
{
"id": 1,
"name": "Jhon"
},
{
"id": 2,
"name": "Mike"
}
];
我想将它作为json字符串(或其他方式)发送给 main.js 作为我的请求的响应。
问题:我的数据显示在浏览器的窗口中。我如何得到它作为回应?
我尝试了
let express = require('express');
let app = express();
app.use(express.static(`main`));
app.get('/', function(req, res){
res.json(data); //also tried to do it through .send, but there data only on window in browser
});
app.listen(3000);
有人可以告诉我要更改我的代码或向我指出Google的方向吗? (我不想使用模板引擎)。
请帮助我:)和平与你同在。
最佳答案
我认为您正在尝试在同一URL /
上提供前端和JSON数据。
您需要按以下方式调整服务器代码:
let express = require('express');
let app = express();
app.use(express.static(`main`));
app.get('/api', function(req, res){
res.json(data); //also tried to do it through .send, but there data only on window in browser
});
app.listen(3000);
现在,您的数据将从
/api
中以JSON的形式提供。然后,您可以在前端进行如下请求:let dataName = [];
let request = async () => {
const response = await fetch('http://localhost:3000/api');
const data = await response.json();
dataName = data.name;
}
let name = document.getElementById('name');
name.textContent = dataName;
还有一个问题,即
url
没有正确定义为参数。我将函数调整为仅在正确的位置使用URL字符串。