Узел JS fetch POST не будет пересылать мопса - PullRequest
0 голосов
/ 04 декабря 2018

Так что я застрял на этом некоторое время, думаю, это может иметь какое-то отношение к типу контента, но я не уверен, я оставлю это на ваше усмотрение.

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;
};
...