我有 2 個 require('express) 電話。第一的:
const express = require('express');
const app = express();
第二:
const Router = require('express');
const router = new Router();
有什么區別,為什么第一次我們呼叫一個函式,而第二次我們創建一個物件,如果兩者的方法相同(使用、獲取、發布等)?
uj5u.com熱心網友回復:
我認為你的問題遺漏了一些東西。您的第二個示例顯示了這一點:
const Router = require('express');
...但我認為您打算這樣做:
const Router = require('express').Router;
...無論如何,以下內容應該可以幫助您更好地理解。
在 express 中,您可以將路由器視為小型迷你應用程式...輕量級 express 應用程式...具有自己的路由。事實上,主要的“快遞”物件本身就是一個路由器。例如,您可能有一堆用于管理用戶的端點:
// ./routes/user-routes.js
const userRoutes = new express.Router();
userRoutes.get('/', getAllUsers);
userRoutes.get('/:userId', getUserById);
userRoutes.post('/', createUser);
userRoutes.put('/:id', updateUser);
userRoutes.delete('/:id', removeUser);
請注意,沒有一個 url/users/內部有類似的東西。這很重要,因為這個小迷你應用程式現在可以“安裝”(由于缺乏更好的術語)在一個更大的快遞應用程式中,如下所示:
const express = require('espress');
const userRoutes = require('./routes/user-routes');
const app = express();
app.use('/path/to/users', userRoutes);
請注意它們是如何userRoutes“安裝”的,/path/to/users這樣所有用戶請求都將發生在以下 URL 上:
- GET /path/to/users - 獲取所有用戶
- GET /path/to/users/1234 - 獲取 id 為“1234”的用戶
- ...你明白了
這主要是一種方便的方式,可以將您的應用程式視為一組精心編排的小型迷你應用程式。
uj5u.com熱心網友回復:
您的第二個呼叫不正確,您只是在呼叫(要求)express,這與您的第一個呼叫類似。
我從來沒有做過const router = new Router();,所以我不確定那會完成什么。
我一般會——
const router = require('express').Router();
router.get();
即使你的第一個電話你可以做
app.get()和app.post()
根據快遞解釋
express.Router類用于創建模塊化、可安裝的路由處理程式。Router 實體是一個完整的中間件和路由系統
在此處閱讀有關它的更多資訊
GeekforGeeks 很好地解釋了 express.Router()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/459243.html
上一篇:為什么郵遞員在快遞應用程式中給我的路線錯誤“無法郵寄”?
下一篇:節點分頁和過濾未按預期作業
