Попытка рефакторинга экспресс-маршрутов - PullRequest
0 голосов
/ 08 марта 2019

Итак, я использую Hackathon Starter и пытаюсь немного реорганизовать маршруты, но у меня возникли проблемы или проблемы:

Я реорганизовал контроллеры в app.js следующим образом

/**
 * Controllers (router handlers)
 * Refactored
 */
const homeController = require('./controllers/home/index');
const userController = require('./controllers/users/index');
const apiController = require('./controllers/api/index');
const contactController = require('./controllers/contact/index');

With the index.js file just being the routes
const express = require('express');
const homeController = require('./homeController');

const app = express();
app.get('/', homeController.index);

module.exports = app;

А в app.js - где все маршруты у меня просто есть:

app.use('/', homeController);
app.use('/user', userController);
app.use('/contact', contactController);
app.use('/api', apiController);

Домашний маршрут работает нормально - но это все. Когда я захожу в доступ / логин или / контакт - ничего не работает. Я получаю сообщение об ошибке Cannot GET / contact

UDPATE HomeController

/**
 * GET /
 * Home page.
 */
exports.index = (req, res) => {
    res.render('home', {
      title: 'Home'
    });
  };

UserController

const bluebird = require('bluebird');
const crypto = bluebird.promisifyAll(require('crypto'));
const nodemailer = require('nodemailer');
const passport = require('passport');
const User = require('../../models/User');
// const User = require('../models/User'); default

/**
 * GET /login
 * Login page.
 */
exports.getLogin = (req, res) => {
  if (req.user) {
    return res.redirect('/');
  }
  res.render('account/login', {
    title: 'Login'
  });
};

/**
 * POST /login
 * Sign in using email and password.
 */
exports.postLogin = (req, res, next) => {
  req.assert('email', 'Email is not valid').isEmail();
  req.assert('password', 'Password cannot be blank').notEmpty();
  req.sanitize('email').normalizeEmail({ gmail_remove_dots: false });

  const errors = req.validationErrors();

  if (errors) {
    req.flash('errors', errors);
    return res.redirect('/login');
  }

  passport.authenticate('local', (err, user, info) => {
    if (err) { return next(err); }
    if (!user) {
      req.flash('errors', info);
      return res.redirect('/login');
    }
    req.logIn(user, (err) => {
      if (err) { return next(err); }
      req.flash('success', { msg: 'Success! You are logged in.' });
      res.redirect(req.session.returnTo || '/');
    });
  })(req, res, next);
};

/**
 * GET /logout
 * Log out.
 */
exports.logout = (req, res) => {
  req.logout();
  res.redirect('/');
};

/**
 * GET /signup
 * Signup page.
 */
exports.getSignup = (req, res) => {
  if (req.user) {
    return res.redirect('/');
  }
  res.render('account/signup', {
    title: 'Create Account'
  });
};
.... lots more code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...