私はエクスプレスアプリを構築しようとしていますが、今はログインプロセスに苦しんでいます。私はそれが私が持っている問題とは何の関係もないとは思っていませんが、学校の授業では、passport.jsを使ってログインフォームを作成しなければならないと言いました。Express.jsとpassport.jsはアクセスできますが、ログインすることはできません
だから、私がいる問題は、私はローカルホスト上の私のブラウザで私のページをレンダリングしようとすること毎回です:3000 /私はこのメッセージを取得ログイン:
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;
マイビュー/ 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
にルータを設置している、そして、あなたのルータにあなたが持っているので
のようになります。 ' – XPLOT1ON