【发布时间】:2022-01-21 16:04:36
【问题描述】:
所以,我在节点服务器上有一个 http://localhost:3000/community 端点,如果调用 GET 方法,它会向我显示 3 个不同的对象,其中包含有关“用户”的信息。
例如:
[
{
"avatar": "http://localhost:3000/avatars/avatar1.png",
"firstName": "Mary",
"lastName": "Smith",
"position": "Lead Designer at Company Name"
},
{
"avatar": "http://localhost:3000/avatars/avatar2.png",
"firstName": "Bill",
"lastName": "Filler",
"position": "Lead Engineer at Company Name"
},
{
"avatar": "http://localhost:3000/avatars/avatar3.png",
"firstName": "Tim",
"lastName": "Gates",
"position": "CEO at Company Name"
}
]
任务不是让信息显示在控制台中,而是显示在网站上创建的部分中,方式如下:
Mary Smith、John Smyth 和 Maryanne Smytch 是 json 文件中的名字,他们的位置也在 json 文件中,头像也是。
我的问题是,因为我是 javascript 新手并使用 fetch,如何获取这些数据并将它们放入 DOM?该部分应在 javascript 中进行动态处理。我只需要一段代码,因为我搜索了整个互联网,但我没有找到如何分别从 json 获取数据并将它们像头像、标题、文本区域或其他东西一样放置。
请帮忙,在此先感谢!
我的获取函数:
const sendHttpRequest = (method, url, data) => {
return fetch(url, {
method: method,
body: JSON.stringify(data),
headers: data ? {
'Content-Type': 'application/json'
} : {}
}).then(response => {
if (response.status >= 400) {
return response.json().then(errResData => {
const error = new Error('Something went wrong!');
error.data = errResData;
throw error;
});
}
return response.json();
});
};
const getCommunity = () => {
sendHttpRequest('GET','http://localhost:8080/community')
.then(communityResponse =>{
console.log(communityResponse);
}).catch(err =>{
console.log(err,err.data);
});
}
来自服务器的社区路由:
const express = require('express');
const router = express.Router();
const {randomNumber} = require('../utils');
const FileStorage = require('../services/FileStorage');
/* GET /community */
router.get('/', async function(req, res) {
try {
const result = await FileStorage.readJsonFile(`community/${randomNumber(1, 3)}.json`);
await res.json(result);
} catch (e) {
console.log(e);
res.status(500).send('Internal error');
}
});
module.exports = router;
【问题讨论】:
标签: javascript html dom fetch