#javascript #node.js #express #server #client
#javascript #node.js #экспресс #сервер #клиент
Вопрос:
Я пытаюсь отправить измененную переменную с клиента на сервер, но я не могу понять это. Чего я пытаюсь достичь, так это того, что я могу использовать ее в main.ejs.
<script>
document.getElementById("char2btn").addEventListener("click", change)
function change() {
charOneInView = "Yes"
const data = {charOneInView}
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
};
fetch('/welcome2', options)
}
</script>
Index.js:
var charoptioneOne = "No"
router.post('/welcome2', ensureAuthenticated, function(req, res){
console.log(req.body)
res.redirect('/main');
})
router.get('/main', ensureAuthenticated, (req, res) =>
res.render('main', {
user: req.user,
charOneInView: charoptioneOne,
charTwoInView: charoptioneTwo
})
)
Мне кажется, что это все еще объект, а не измененная переменная, как мне это исправить?
Ответ №1:
используйте модуль body-parser в серверной части
const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
установите заголовок запроса следующим образом:
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}