node.js/django迷你应用程序

node.js/django迷你应用程序,django,node.js,express,Django,Node.js,Express,我对微软的迷你应用概念印象深刻。不要使用全局文件夹: /site/models /site/views 您可以为每个应用程序区域创建另一级别的分隔: /site/login/models /site/catalog/models AFAIU应用程序区域之间必须互不了解任何信息。这就产生了一些问题,比如在哪里放置共享数据库模型,以及如果太多的共享模型意味着错误的迷你应用程序分离。我正试图找到更多关于这个迷你应用程序概念的资料。网络广播提到这在django很常见。任何人在node(首选)或dja

我对微软的迷你应用概念印象深刻。不要使用全局文件夹:

/site/models
/site/views
您可以为每个应用程序区域创建另一级别的分隔:

/site/login/models
/site/catalog/models

AFAIU应用程序区域之间必须互不了解任何信息。这就产生了一些问题,比如在哪里放置共享数据库模型,以及如果太多的共享模型意味着错误的迷你应用程序分离。我正试图找到更多关于这个迷你应用程序概念的资料。网络广播提到这在django很常见。任何人在node(首选)或django中都有相关经验或资料吗?

我也基于django构建了我的express.js结构。有两种不同的技术,它们都有局限性,它们都不完全像Django应用程序

我在app.js文件中使用此api

var app = express();
require('./some-app1').init(app);
require('./some-app2').init(app);
我的子应用程序目录:

 some-app
 - index.js
 - middleware.js
这两种技术都是一样的

接下来是当我的应用程序不需要专用的视图目录时我的使用方式

index.js

 var middleware = require('./middleware');

 var subapp = function (app) {
    app.get('/stuff', middleware.handle_stuff);
 }

 module.exports = subapp;
 var app = express();

 app.get('/stuff', middleware.handle_stuff);

 var subapp = function (app) {
    app.use(app);
 }

 module.exports = subapp;
这就是我如何开始做的事情,这是非常基本的,但工作得很好

对于第二种技术,您需要知道Express实际上有一种叫做子应用程序的东西。这是一个真正的Express对象,安装在基础应用程序之上

index.js

 var middleware = require('./middleware');

 var subapp = function (app) {
    app.get('/stuff', middleware.handle_stuff);
 }

 module.exports = subapp;
 var app = express();

 app.get('/stuff', middleware.handle_stuff);

 var subapp = function (app) {
    app.use(app);
 }

 module.exports = subapp;

在选择第一种或第二种技术之前,我通常会问自己“我需要为这个应用程序提供一个专用的视图目录吗?”。如果答案是“是”,我就选第二个。我见过其他人使用第二种技术,因为真正的子应用程序可以自己运行,因此您可以实际执行独立的http请求进行测试。

谢谢。无论采用哪种方式,db模型模块是每个子应用程序内部保存还是保存在共享文件夹中?我团队中的一些ppl声称共享db模型违反了子应用的概念。这要看情况,有些应用真的很容易隔离,而其他应用则不然。我个人并不担心立即隔离,因为在项目的后期,很明显哪些应用程序易于隔离。应用程序也可以相互依赖。例如,验证应用程序可能依赖于验证程序应用程序。TJ(特快作者)将IRC中learnboost的一些项目结构联系起来。他们几乎把所有东西都放在应用程序/目录中。如果我没记错的话,他们甚至将静态文件放在自己的应用程序/目录中。我忘了提到TJ写了一篇关于这一切的博文: