我剛剛進入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