#node.js #fs #fetch-api #body-parser
#node.js #fs #fetch-api #body-parser
Вопрос:
Итак, я создаю некоторое программное обеспечение для блога с помощью FS и Express, с bodyParser. Во всяком случае, когда я отправляю запрос POST (используя Fetch API)
Когда я ввожу правильный пароль (как переменную .env в config.js file) он говорит, что это неверно, и предположение было неопределенным. Я пробовал довольно много, но ничего не работает. (Моя функция undo () удаляет символы и возвращает результат.)
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json({ strict:false }));
app.post("/newpost", (req, res) => {
if (req.body.password == config.PASSWORD) {
fs.writeFile("/blog/" undo(req.body.name) ".md", req.body.context, (err) => {
console.log("Probably made file. Error: " err);
});
} else {
console.error("Someone tried guessing and making a blog on your Blog. Stay safe. Their guess was " req.body.password ".");
}
});
И вот функция для добавления нового блога:
var xv=prompt("Enter the password.");
var ob = {password: xv, name: document.getElementById("title").innerText, context: document.getElementById("context").innerHTML};
fetch("/newpost",{method:"POST", body:JSON.stringify(ob)});
Ответ №1:
Поскольку вы преобразуете в строку, здесь-
var xv=prompt("Enter the password.");
var ob = {password: xv, name: document.getElementById("title").innerText, context: document.getElementById("context").innerHTML};
fetch("/newpost",{method:"POST", body:JSON.stringify(ob)});
Здесь вам нужно преобразовать обратно в object
app.use(bodyParser.json({ strict:false }));
app.post("/newpost", (req, res) => {
req.body = JSON.parse(req.body);
if (req.body.password == config.PASSWORD) {
fs.writeFile("/blog/" undo(req.body.name) ".md", req.body.context, (err) => {
console.log("Probably made file. Error: " err);
});
} else {
console.error("Someone tried guessing and making a blog on your Blog. Stay safe. Their guess was " req.body.password ".");
}
});```