Так что я застрял на этом некоторое время, думаю, это может иметь какое-то отношение к типу контента, но я не уверен, я оставлю это на ваше усмотрение.
script.js
let pass = {username: username, password: password};
fetch("/login",{
method: 'POST',
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(pass)
}).catch(function (err) {
alert("Something's wrong :(");
});
server.js
app.set('view engine', 'pug');
app.post('/login', function (req, res) {
console.log(req);
console.log(req.body);
res.render('main',{
username: 'aaaaaa',
favorites: ''
});
});
Если я пытаюсь изменить тип содержимого, тело возвращаетсяпустой, и рендеринг по-прежнему ничего не делает.
Если я запускаю обычный запрос GET из index.html (без использования fetch), он запускает рендеринг, как и ожидалось.Просто нужно использовать первый, чтобы передать данные мопсу.
app.get('/createUser', function (req, res){
res.render('main',{
username: 'aaaaaa',
favorites: ''
});
res.sendFile(__dirname + '/' + 'public/createUser.html');
});
Заранее спасибо
Редактировать:
Также попробовал использовать промежуточное ПО и сеансы ниже, тоже самоерезультат.Не будет отображать страницу.Не уверен, как перейти с поста, чтобы получить запрос, если это то, что мне нужно сделать.
app.use(session({
secret: 'tarter sauce',
resave: false,
saveUninitialized: true
}))
app.post('/login', log, test, main);
function log(req, res, next) {
//console.log(req);
req.session.valid = false;
console.log(req.body);
const input = req.body;
console.log(input);
console.log(input.username);
fs.readFile('users.json', (err,data)=>{
if(err) throw err;
const users = JSON.parse(data);
//console.log("data "+data);
//console.log(req.headers['content-type']);
if (users.hasOwnProperty(input.username)){
//console.log("is a user");
if(users[input.username].password==input.password){
//console.log("login success");
const response = {
username: users[input.username].username,
favorites: users[input.username].favorites
};
req.session.username = users[input.username].username;
req.session.favorites = users[input.username].favorites;
req.session.valid = true;
}
}
//console.log("next");
next();
});
}
function test(req, res, next){
//console.log("test");
next();
}
function main(req, res){
//console.log(req.session.username);
//console.log("render");
res.send();
res.render('main', {
username: "req.session.username",
favorites: "req.session.favorites"
});
res.end;
};