Express js模块化REST框架

时间:2016-08-29 06:27:06

标签: node.js rest express mean-stack

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

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

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

ModuleA:

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

... // add all routes of moduleA

module.exports = router;

ModuleB:

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

... // add all routes of moduleB

module.exports = router;

ModuleC:

/* 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在我们注释时被禁用。

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