mynodejs登录页面没有响应

时间:2017-10-19 12:41:26

标签: node.js

我是节点js的新手,我尝试创建一个简单的登录页面。但是当我运行我的代码时,它会将我带到登录页面。问题是当我输入用户名和密码时,它不会显示它应该显示的信息。

var express = require('express');
var sessions = require('express-session');

var session;

var bodyParser = require('body-parser');

var app = express(); 

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));

app.use(sessions({
    secret: '2937#&&#',
    resave: false,
    saveUninitialized: true
}))

app.get('/login', function(req, resp){
    session = req.session;
    if(session.uniqueID){
        resp.redirect('/redirects');
    }
    resp.sendFile('./files/login.html', {root: __dirname});
});

app.post('/login', function(req, resp){
    // resp.end(JSON.stringify(req.body));
    session = req.session;
    if(session.uniqueID) {
        resp.redirect('/redirects');
    }

    if(req.body.username == 'admin' && req.body.password == 'admin'){
        session.uniqueID = req.body.username;
    }
    resp.redirect('/redirects');
});

    app.get('/logout', function(req, resp){
        req.session.destroy();
            resp.redirect('/login');
    });

    app.get('/admin', function(req, resp){
        session = req.session;
        if(session.uniqueID != 'admin'){
            resp.end('Unauthorised acess')
        }
        resp.end('You are good');
    })

  app.get('/redirects', function(req, resp){
    session = req.session;
    if(session.uniqueID =='admin') {
        console.log(session.uniqueID)
        resp.redirect('/admin');
    } else {
        resp.send(req.session.uniqueID + 'not found <a href="/logout">KILL SESSION</a>');
    }
  })

app.listen(1337, function() {
    console.log('Listening at port 1337');
}); 

1 个答案:

答案 0 :(得分:0)

没有任何事情发生,因为您无法重定向AJAX调用。您的POST可能有效,但是您的重定向指令无效。

尝试发送&#34;成功&#34;如果用户名和密码都很好(简单res.send('OK');会这样做),然后在客户端将用户重定向到/redirects(如果返回成功代码,则为window.location.replace('https://yoursite.com/redirects'));

这将由/redirects的GET路由处理,您应该看到自己想要的内容。