Я настраиваю свой первый проект узла. У меня были все страницы, которые хорошо работали, пока я не начал что-то перемещать. Я выполнил всю свою маршрутизацию для разных страниц в index.js
. Я изменил это и создал файл login.js
в моей папке rotes, чтобы разбить часть логики. Раньше все URL-адреса работали и отображали страницы правильно. Опубликовать рефакторинг, я продолжаю получать 404 страницы не найденных ошибок для всех маршрутов входа.Определенные маршруты перейти на страницу 404 error express
app.js:
var express = require('express');
var exphbs = require('express-handlebars');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var session = require('express-session');
var passport = require('passport');
var bodyParser = require('body-parser');
var routes = require('./routes/index');
var login = require('./routes/login');
//Using firebase initialized in config file.
var database = require('./config/firebase');
var app = express();
///Setting stuff up here .....
app.use('/', routes);
app.use('/login', login);
app.use(function(req,res){
res.status(404);
res.render('404');
});
module.exports = app;
index.js:
var express = require('express');
var router = express.Router();
var csrf = require('csurf');
var csrfProtection = csrf();
var firebase = require('firebase');
var login = require('./login');
//tell express: All routes should be protected by csrf protection.
router.use(csrfProtection);
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('home', { title: 'Express' });
});
module.exports = router;
login.js:
var express = require('express');
var router = express.Router();
var csrf = require('csurf');
var csrfProtection = csrf();
//Using firebase initialized in config file.
var database = require('../config/firebase');
router.use(csrfProtection);
router.get('/login', function(req, res, next) {
res.render('login', { title: 'Login' });
});
router.get('/forgotpassword', function (req,res){
res.render('forgotpassword', {title:'Forgot Password'})
});
//ADD A TERMS PAGE TO SHOW TERMS AND CONDITIONS
router.get('/signup', function (req,res){
res.render('signup', {title:'Sign up', csrfToken: req.csrfToken()});
});
router.post('/signup', function(req, res, next){
res.redirect('/');
});
module.exports = router;
The index.js
оказывает вид домашнего правильно. Остальные маршруты, такие как/login или/signup, все собираются в 404, и я не могу понять, почему.
Проблема заключается в 'вар csrfProtection = CSRF();', вы звоните в функция. Вместо этого попробуйте 'var csrfProtection = csrf;' – Hosar