到达路线后,您应该将逻辑放在 Express 应用程序的什么位置?
Where should you put the logic in an Express app, upon reaching a route?
我一直在阅读一些 Node.JS,快速教程,我发现了一些有趣的东西。
当谈到在应用程序中做一些逻辑时,他们似乎总是建议将逻辑放在请求到达时的路由中。例如,在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');
}
});
});
});
有没有更好的方法来组织这个逻辑?例如,您可以将逻辑放在另一个文件中吗(考虑到我的项目在某些路由中需要大量逻辑)?如果是,您如何将其引用到路由文件中?
您可以尝试这样的操作:
// 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: {
.....
}
}
我一直在阅读一些 Node.JS,快速教程,我发现了一些有趣的东西。
当谈到在应用程序中做一些逻辑时,他们似乎总是建议将逻辑放在请求到达时的路由中。例如,在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');
}
});
});
});
有没有更好的方法来组织这个逻辑?例如,您可以将逻辑放在另一个文件中吗(考虑到我的项目在某些路由中需要大量逻辑)?如果是,您如何将其引用到路由文件中?
您可以尝试这样的操作:
// 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: {
.....
}
}