我刚刚进入Express,并注意到我看到的路由和中间件的每个示例都使用匿名函数。下面是从快递网站的例子:Express JS - 使用匿名函数路由和中间件
router.get('/user/:id', function(req, res){
res.send('user ' + req.params.id);
});
我想知道,如果有,为什么我没有看到使用函数声明,而不是任何人的理由。这样的事情:
router.get('/user/:id', getUserById);
function getUserById(req, res) {
res.send('user ' + req.params.id);
}
我的问题很大程度上是因为我与约翰帕帕的角度styleguide的经验。在书中,他建议您使用提升你的优势,因为在这了: https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md#style-y053
他基本上是主张在定义自己的“API”在顶部的角度服务,让您可以快速查看的访问成员服务而不用除去实施。如果使用函数声明,我可以看到与路由相同的潜力。当你在一个视图中,不能记不清楚了URL必须符合特定的路线,你可以打开用户
router.get('/user/:id', getUserById);
router.get('/users', getAllUsers);
router.delete('/user', deleteUser);
router.put('/user/:id', updateUser);
function getUserById(req, res) {
res.send('user ' + req.params.id);
}
function getAllUsers(req, res) {
// implement get all users
}
function deleteUser(req, res) {
// implement delete user
}
function updateUser(req, res) {
// implement update user
}
这样:你可能有一个用户路由文件是这样的。 js文件并快速查看顶部的所有可用端点。没有向下滚动找到你需要的端点。
是否有一个令人信服的理由不这样做,或者我没有看到更好的方法?
不,不是真的。创建使用匿名函数的示例非常简单。请记住,这只是JavaScript,你习惯使用的原则仍然适用。 –
这主要是自以为是的。就个人而言,我更愿意将我的路由功能与我的实际路由分开。所以我将在不同的文件中使用命名函数引用,使用带有app.use'的快速中间件来应用路由器。 –
@SterlingArcher你说得对,这绝对是关于意见的,这是我觉得奇怪的一个原因,我没有看到任何人分享他们如何构建他们的路线。感谢你分享你的想法。 – developering