javascript - Express 路由器级中间件

标签 javascript express

我相信在express 4.0中这是创建路由器级中间件的方法,这是创建express.Router的多个实例的好方法吗?

var userRouter = express.Router();
var paymentRouter = express.Router();

userRouter.get("/login", function (req, res, next) {
    res.send("okay this is route")
});

paymentRouter.get("/pay", function (req, res, next) {
    res.send("okay this is route")
});


app.use("/user" ,userRouter);
app.use("/payment" ,paymentRouter);

最佳答案

可以使用单独的路由器来模块化您的应用程序。

就您的情况而言,您似乎(至少)拥有 API 或 Web 应用程序的两个不同部分:用户部分和支付部分:

app.use("/user",    userRouter);
app.use("/payment", paymentRouter);

为此使用两个单独的路由器是完全合理的。

通常,每个路由器通过将它们放置在单独的模块中来进一步模块化,其中包含该路由器的具体信息:

app.use("/user",    require('./routers/user'));
app.use("/payment", require('./routers/payment'));

所以你会得到一个不错的separation of concern .

Express 文档也涉及此主题 here .

关于javascript - Express 路由器级中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37895015/

相关文章:

javascript - chrome 扩展 - 根据魔数(Magic Number)获取文件类型

node.js - 为什么 fs.createReadStream ... pipe(res) 锁定读取的文件?

javascript - Node/Express/Request - 尝试使用参数代理 POST 请求会抛出 "Write after end"

javascript - 正在为未受影响的其他组件触发 Vue 指令

Javascript 验证文本区域以查找 SSN

node.js - 如何设置 Node.js 和 Express(MERN 堆栈)

javascript - promise 链中的 async.queue ?

node.js - 为什么此示例代码使用 process.nextTick?

javascript - Angularjs:使用数据动态加载 View 中的指令

javascript - 在辅助方法中 react i18next useTranslation Hook