gpt4 book ai didi

javascript - Express.js 和 passport.js,但无法获取/登录

转载 作者:行者123 更新时间:2023-11-30 21:15:26 25 4
gpt4 key购买 nike

我正在尝试构建一个快速应用程序,但现在我卡在了登录过程中。我不确定它与我遇到的问题有什么关系,但我的学校作业说我必须使用 passport.js 来制作登录表单。

所以,我遇到的问题是,每次我尝试在 localhost:3000/login 上的浏览​​器中呈现我的页面时,我都会收到此消息:

CANNOT GET /login

我的代码可能还有更多问题,但由于我已经收到此错误,所以不可能找出来。

我的默认应用文件:

const express = require('express');
const app = express();

app.listen(3000, () => {
console.log('Example listening on port 3000!')
});

const loginRoute = require('./routes/logins.js');

app.use('/login', loginRoute);

const passport = require('passport')
, LocalStrategy = require('passport-local').Strategy;

passport.use(new LocalStrategy(
function(username, password, done) {
User.findOne({ username: username }, function(err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));

module.exports = app;

我的路由/登录文件:

const express = require('express');
const router = express.Router();
const pug = require('pug');

const login = pug.compileFile('views/login.pug');

router.get('/login', function(req, res, next) {
res.render('login', { title: 'Login' });
});

const passport = require('passport');

router.post('/login',
passport.authenticate('local', { successRedirect: '/',
failureRedirect: '/login',
failureFlash: true })
);

module.exports = router;

我的 views/login.pug 文件:

 doctype html
html
head
body
h1 #{title}
form(action='/login', method='post')
div
label Username:
input(type='text', name='username')
div
label Password:
input(type='password', name='password')
div
input(type='submit', value='Log In')

如果有人能帮我解决这个问题,我将不胜感激。

最佳答案

因为您将路由器安装到路径 /login 上,然后在您的路由器中:

router.get('/login', function(req, res){...})

Express 会将其评估为 localhost:3000/login/login

路由器文件中的路径应该与您安装它的路径相关。所以对于 localhost:3000/login 你的 logins 路由器应该是这样的

router.get('/', function(req, res){...})
//and
router.post('/', function(req, res){...})

关于javascript - Express.js 和 passport.js,但无法获取/登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45730197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com