在达到路线时,您应该将逻辑放在Express应用程序中?

我一直在阅读一些Node.JS,Express教程,我意识到一些有趣的东西。

当在应用程序中做一些逻辑时,他们似乎总是build议在请求到达时将逻辑放在路由中。 例如,在本教程中 ,一些逻辑甚至变得相当长:

//Delete a book app.delete( '/api/books/:id', function( request, response ) { BookModel.findById( request.params.id, function( err, book ) { return book.remove( function( err ) { if( !err ) { console.log( 'Book removed' ); return response.send( '' ); } else { console.log( err ); return response.send('ERROR'); } }); }); }); 

有没有更好的方法来组织这个逻辑? 例如,你可以把逻辑放在另一个文件中(考虑到我的项目在一些路由中需要很多的逻辑)? 如果是的话,你怎么能把它引入到路由文件中呢?

你可以尝试这样的东西:

 // app.js var routes = require('./routes.js'); app.delete( '/api/books/:id', routes.book.delete); app.get( '/api/books/:id', routes.book.getBook); // routes.js module.exports = { books: { delete: function(request, response){ BookModel.findById( request.params.id, function( err, book ) { return book.remove( function( err ) { if( !err ) { console.log( 'Book removed' ); return response.send( '' ); } else { console.log( err ); return response.send('ERROR'); } }); }); }, getBook: function(req, res){ ..... } }, user: { ..... } }