請關(guān)注專題:我的NodeJS學習之路(實踐之路)
小弟初涉node領(lǐng)域怀伦,不足之處帅容,還請多多指教装畅!
歡迎Star晶衷、Fork:https://github.com/gefangshuai/ANodeBlog
NodeJS路由規(guī)范遵循RESTful 規(guī)范
,更多有關(guān)RESTful的相關(guān)知識請參考RESTful API 設(shè)計指南
在本例中抄邀,主要分兩個角色:
- 普通用戶:對文章進行瀏覽查看評論
- 管理員:對文章進行管理耘眨。
所以我們的路由要針對這兩部分用戶分別進行設(shè)計,我遵循的原則是:普通用戶:路由盡量簡短明了(可參考簡書)境肾;管理員用戶:直觀表達功能
普通用戶路由
這里的普通用戶路由是指:普通用戶就能操作的功能模塊
普通用戶我們分三部分:系統(tǒng)有關(guān)(如:登錄剔难,注冊等)、文章有關(guān)(如:查看等)准夷、用戶信息有關(guān)(如查看作者詳情)钥飞。
為什么要分這么細呢?主要是為了統(tǒng)一url前綴衫嵌,如:/p/…
代表具體文章的信息读宙,/u/...
代表當前用戶有關(guān)的信息
有了這三部分,我們就可以創(chuàng)建三個路由文件分別是index.js
楔绞、articles.js
结闸、users.js
唇兑,路由前綴分別是/
、/p/
桦锄、/u/
扎附。
在app.js
中就可以注冊我們的路由了:
app.use('/', require('./routes/index'));
app.use('/p', require('./routes/articles'));
app.use('/u', require('./routes/users'));
詳細的路由信息如下:
index.js:
-
/
: 首頁 -
/new
: 最新文章 -
/login
: 登錄頁 -
/join
: 注冊頁 -
/logout
: 退出
articles.js:
-
/p/:articleId
: 文章詳情頁
users.js
-
/u/:username
: 作者詳情頁
管理員路由
管理員路由是指:必須登錄認證的管理者操作的功能模塊
相對普通用戶路由,管理員路由也由三部分組成:系統(tǒng)有關(guān)结耀、文章有關(guān)留夜、用戶有關(guān)。
為了統(tǒng)一管理图甜,便于直觀維護碍粥,對于管理員路由文件,我們統(tǒng)一用dashboard
前綴表示黑毅,這樣管理員路由文件為:dashboard.js
嚼摩、dashboard-p.js
、dashboard-u.js
矿瘦。同樣枕面,對于管理者的路由,在原來的基礎(chǔ)上缚去,都以/dashboard/
前綴表示潮秘。(這樣劃分也是為了后面做權(quán)限控制作鋪墊的,后面會專門介紹權(quán)限控制的相關(guān)內(nèi)容)
在app.js
中注冊路由:
app.use('/dashboard', authority.isAuthenticated, require('./routes/dashboard'));
app.use('/dashboard/p', authority.isAuthenticated, require('./routes/dashboard-p'));
app.use('/dashboard/u', authority.isAuthenticated, require('./routes/dashboard-u'));
authority.isAuthenticated
是權(quán)限控制攔截器病游,請讀者先忽略唇跨,后面會詳細介紹稠通。
詳細的路由信息如下:
dashboard.js:
-
/dashboard
: 后臺首頁
dashboard-p.js:
-
/dashboard/p
: 后臺文章管理頁 -
/dashboard/p/create
: 文章創(chuàng)建 -
/dashboard/p/delete/:id
: 文章刪除 -
/dashboard/p/edit/:id
: 文章編輯 -
/dashboard/p/up/:id
: 文章置頂 -
/dashboard/p/recommend/:id
: 文章推薦
dashboard-u.js:
-
/dashboard/u
: 后臺用戶信息頁
至此衬衬,所有的路由已設(shè)計完畢!
對于路由的設(shè)計,盡量遵循標準規(guī)范改橘,這樣對于我們的程序滋尉,可很好維護控制。
未完待續(xù)
請關(guān)注專題:我的NodeJS學習之路(實踐之路)