экспресс-маршрут не может получить - PullRequest
0 голосов
/ 07 июня 2018

У меня есть файл маршрута для админа и домашней страницы отдельно.У меня также есть файлы разметки различий для дома и администратора.Когда я получаю доступ к домашним и административным маршрутам на своем локальном устройстве, все в порядке, но когда я пытаюсь получить доступ к административному маршруту с помощью site.com/admin, я получаю Cannot GET / admin / response.ниже мой server.js:

const express = require('express');
const exphbs = require('express-handlebars');
const methodOverride = require('method-override');
const flash = require('connect-flash');
const session = require('express-session');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const path = require('path');


const app = express();


// Use path
app.use(express.static(path.join(__dirname, 'public')));

// Map Global Promise
mongoose.Promise = global.Promise;

// Connect to mongoose
mongoose.connect('mongodb://localhost/skillbuild')
    .then(() => console.log('MongoDB Connected...'))
    .catch(err => console.log(err));

// Load Idea model
// require('./models/Idea');
// const Idea = mongoose.model('ideas');

// Express Handlebars middleware
app.engine('handlebars', exphbs({
    defaultLayout: 'main'
}));
app.set('view engine', 'handlebars');

// BodyParser middleware
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// Method Override middleware
app.use(methodOverride('_method'));

// Load routes
const home = require('./routes/home');
const admin = require('./routes/admin');


// Use routes
app.use('/', home);
app.use('/admin', admin);

// Express session middleware
app.use(session({
    secret: 'keyboard cat',
    resave: true,
    saveUninitialized: true
}));

app.use(flash());

// Global variables
app.use(function (req, res, next) {
    res.locals.success_msg = req.flash('success_msg');
    res.locals.error_msg = req.flash('error_msg');
    res.locals.error = req.flash('error');
    next();
});




const port = 80;

app.listen(port, () => {
    console.log(`Server started on port ${port}`);
});

мои домашние маршруты, которые находятся в файле маршрутов home.js:

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

router.all('/*', (req, res, next) => {
    req.app.locals.layout = 'main';
    next();
});

// index route 
router.get('/', (req, res) => {
    res.render('index');
});


// About route 
router.get('/about', (req, res) => {
    res.render('about');
});


//login route temp 
router.get('/login', (req, res) => {
    res.render('users/login');
});

module.exports = router;

мой файл маршрутов admin.js:

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

router.all('/*', (req, res, next) => {
    req.app.locals.layout = 'admin';
    next();
});

// admin index route 
router.get('/', (req, res) => {
    res.render('admin/index');
});

module.exports = router;

1 Ответ

0 голосов
/ 07 июня 2018

ОК ... проблема в том, что мне нужно было перезапустить сервер с идентификатором перезапуска pm2 приложения узла, чтобы загрузить обновленный код.Проблема решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...