gpt4 book ai didi

node.js - Express js 模块化 REST 框架

转载 作者:太空宇宙 更新时间:2023-11-04 03:06:36 25 4
gpt4 key购买 nike

我计划仅使用express js 开发rest api,我研究了很多样板项目。它们都不提供模块化。模块化我的意思是与文章模块相关的所有代码都需要位于文章文件夹中,然后我可以拖放它。

我看到 MEAN 与此有些接近,但其中有客户端(角度相关)代码。我需要纯休息API框架。

最佳答案

对我来说,听起来您不想使用 MEN 堆栈,我没有看到您的问题中使用 MongoDB 的理由。您可以编写模块化 express 应用程序,例如像这样:

假设您在三个不同的文件夹 moduleAmoduleBmoduleC 中有三个模块。每个文件夹都包含其各自的逻辑,并提供一些通往外界的 RESTful 路由。在 express 中,您将为每个模块创建一个单独的 Router,如下所示:

模块A:

/* moduleA/routes.js */
var express = require('express');
var router = express.Router();

... // add all routes of moduleA

module.exports = router;

模块B:

/* moduleB/routes.js */
var express = require('express');
var router = express.Router();

... // add all routes of moduleB

module.exports = router;

模块C:

/* moduleC/routes.js */
var express = require('express');
var router = express.Router();

... // add all routes of moduleC

module.exports = router;

然后,您的根文件夹中将有一个主 app.js 文件,您可以通过将单个模块安装到主 express 应用程序中来启用和禁用单个模块:

/* app.js */
var express = require('express');
var moduleA = require('./moduleA/routes');
var moduleB = require('./moduleB/routes');
var moduleC = require('./moduleC/routes');

var app = express();

... // add your main app's middlewares

app.use('/moduleA', moduleA);
app.use('/moduleB', moduleB);
// app.use('/moduleC', moduleC);

app.listen(3000);

在此示例中,模块 moduleAmoduleB 已启用,并分别通过路由 /moduleA/*/moduleB/* 到达。当我们将其注释掉时,模块 moduleC 已被禁用。

如有疑问请留言。

关于node.js - Express js 模块化 REST 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39199776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com