【问题标题】:Express js modular REST frameworkExpress js 模块化 REST 框架
【发布时间】:2016-08-29 06:27:05
【问题描述】:

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

我看到 MEAN 有点接近,但它有客户端(角度相关)代码。我需要纯rest api框架。

【问题讨论】:

  • 你能说得更具体一点吗?一般来说,你是对的,你不需要完整的 MEAN 堆栈,一个简单的express 应用程序就足以构建一个模块化的 rest api。你有什么问题?
  • @Jonas 由于 express js 没有提供任何最佳实践来构建您的应用程序,我正在寻找一些样板代码。我看到的所有样板都没有模块化结构。这意味着我不能将与一个模块相关的所有文件保存在一个文件夹中并禁用或启用它。

标签: node.js rest express mean-stack


【解决方案1】:

对我来说,听起来您不想使用 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 在我们注释掉时被禁用。

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

【讨论】:

    【解决方案2】:

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

    这里有一个关于如何使用“MEN”堆栈构建项目的教程:https://github.com/maslennikov/node-tutorial-men 或这个:https://scotch.io/tutorials/build-a-restful-api-using-node-and-express-4

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-25
      • 2018-08-28
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      • 2012-11-16
      相关资源
      最近更新 更多