我一直在阅读一些Node.JS,Express教程,我发现了一些有趣的东西。
当谈到在应用程序中执行某些逻辑时,他们似乎总是建议将逻辑放在请求到达时的路由中。例如,在this tutorial中,一些逻辑甚至变得很长:
//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');
}
});
});
});
有没有更好的方法来组织这个逻辑?例如,你可以把逻辑放在另一个文件中(考虑到我的项目在某些路线中需要很多逻辑)?如果是,您如何将其引用到路线文件中?
答案 0 :(得分:2)
您可以尝试这样的事情:
// 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: {
.....
}
}