Express js 模块化 REST 框架

Express js modular REST framework

我打算只使用 express js 开发 rest api,我研究了很多样板项目。 None 其中提供模块化。模块化我的意思是所有与文章模块相关的代码都需要放在文章文件夹中,然后我可以拖放它。

我看到 MEAN 有点接近,但它有客户端(angular 相关)代码。我需要纯粹的休息 api 框架。

听起来您想使用 "MEN" 堆栈,即 MongoDB(用于后端)、Express 和 Node.JS。

这里是关于如何使用 "MEN" 堆栈构建项目的教程:https://github.com/maslennikov/node-tutorial-men or this one: https://scotch.io/tutorials/build-a-restful-api-using-node-and-express-4

对我来说,听起来你不想使用 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 已被禁用,因为我们已将其注释掉。

如果您有任何问题,请发表评论。