1.)我有一个根据用户输入成功生成随机词的函数(如果用户输入是10个,则网站上会显示10个随机词)。a有一个json服务器,然后使用GET请求,如下所示:
function getRandomWords() {
let words = getServerData('http://localhost:3000/words').then(data => {
const wordsToMemorize = document.querySelector('#words-to-memorize');
document.querySelector("#wordsInput").addEventListener("click", function() {
let temp = wordsToMemorize.value;
generatedArrayELements.innerHTML = "";
for(let i = 0; i < temp; i++) {
let rander = Math.floor(Math.random() * 3000);
generatedArrayELements.innerHTML += data[rander] + "</br>";
}})
});
}
2.)我想将生成的单词添加到我设置为空的randomwords数组
中的。json文件中,但它不想工作:
function putServerData() {
let data = getRandomWords();
let fetchOptions = {
method: "POST",
mode: "cors",
cache: "no-cache",
headers: {
'Content-Type': 'application/json'
},
credentials: "same-origin",
body: JSON.stringify(data)
};
return fetch("http://localhost:3000/randomwords", fetchOptions)
.then(resp => resp.json())
.then(json => console.log(json));
}
document.querySelector("#wordsInput").addEventListener("click", function() {
putServerData();
})
3.)我感觉非常接近我的目标,因为随机词生成器可以工作,如果我手动设置let data
变量的值,我也可以将数据发送到。json文件中。我不知道的是如何将生成的随机词发送到我的。json文件中。
4.)我的json文件:
{
"randomwords": [],
"words": [
"a",
"abandon",
"ability",
"able",
"abortion",
"about",
"above",
"abroad",
"absence",
"absolute",
"absolutely",
"absorb",
"abuse",
"academic",
"accept",
"access"...(remaining words...)
}]
4.)我试着遵循如何使用异步/等待和超时的文档,但我不确定我做得是否好(我现在没有发布那个版本)。我想我需要使用它们,因为在我对它们使用post请求之前,首先需要生成随机词。我已经为这个问题挣扎了将近一个星期,但没有找到解决方案,我几乎阅读了SO中所有相关的帖子。我们将非常感谢所有的帮助。
您不能通过执行fetch
post
调用来向json文件添加日期,但是您可以做的是将数据写入json文件,您可以通过使用节点fs
module
来实现这一点。 首先创建路由处理程序
const fs = require('fs')
router.post("/savedata", (req, res) => {
const jsondata = req.body
fs.writeFileSync('./path/to/your/json/data', jsondata, err => {
if (err) {
res.send("error saving file")
} else {
res.send("data saved successfully")
}
})
})
然后使用fetch调用在正文中传递数据