繁体   English   中英

node.js / Django迷你应用

[英]node.js / django mini apps

peepcode node.js教程中的mini-app概念给我留下了深刻的印象。 而不是拥有全局文件夹:

/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

这两种技术都是一样的。

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

index.js

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

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

 module.exports = subapp;

这就是我开始做的事情的方法,这些事情确实很基础,但是效果很好。

对于第二种技术,您需要知道Express实际上有一个称为子应用程序的东西。 这是一个真正的Express对象,您可以将其安装在基本应用程序的顶部。

index.js

 var app = express();

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

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

 module.exports = subapp;

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM