2014-01-20 3 views
0

Я создал приложение Express. У меня есть индексная страница, я хочу добавить форму подписки для сбора электронной почты на странице сохранения.Как обрабатывать маршруты Express.js?

Поэтому я добавил функцию ./routes/index.js:

exports.index = function(req, res){ 
    res.render('index', { title: 'Express' }); 
}; 

exports.subscribe = function(req, res){ 
    res.send('Subscribed'); 
}; 

Вот app.js:

var routes = require('./routes'); 
//Some code here 
app.post('/subscribe', routes.subscribe); 

Это хороший способ организовать код? Я имею в виду, где я должен разместить обработчик маршрута в таком случае?

+0

Да, это хороший способ. Я обычно храню один файл маршрутов на «контроллер», например, если вы делаете блог-сайт: userRoutes.js для пользовательских функций, blogRoutes.js для функции записей блога, adminRoutes.js для функций администратора. –

ответ

1

вы можете сделать некоторые вещи, как

app.use(app.router); 
var routes = require('./routes')(app); 

, а затем создать route.js, которые могут выглядеть как

var index = require('./routes/index'); 
var users = require('./routes/users'); 
module.exports = function(app){ 
app.get('/',index.index); 
app.get('/homePage',users.homePage); 
}; 

теперь, как вы можете видеть, я создал папку маршрутов для управления всеми моими таких как индекс и пользователи. Таким образом, вы можете просто посмотреть на index.js

exports.index = function(req, res){ 
    res.render('index', { title: 'Express' }); 
}; 

Я имею в виду, что это самый простой, и вы можете получить или пост согласно вашему требованию. Это стандарт, который вы можете увидеть повсюду.

+0

Когда я вызываю var routes = require ('./ routes'), он загружает все определения функций внутри папки ./routes? –

+0

нет, вам нужно сделать что-то вроде этого **, var routes = require ('./ routes') (приложение); ** затем он передаст требуемые объекты другим маршрутам только небольшую коррекцию в последнем комментарии, который я сделал. 'var index = require ('./ routes/index'); var user = require ('./ routes/user'); var bootstrap = require ('./ routes/bootstrap'); module.exports = function (app) { \t app.get ('/', index.index); \t app.get ('/ cookiePage', bootstrap.cookiePage); \t app.get ('/ counter', bootstrap.counter); app.get ('/ msession', bootstrap.msession); }; ' – NarendraSoni

Смежные вопросы