0

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

/site/models
/site/views

您为每个应用程序区域创建另一个级别的分离:

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

AFAIU 应用领域必须彼此一无所知。这会产生一些关于将共享数据库模型放在哪里的问题,以及如果太多的共享模型意味着进行了错误的迷你应用分离。我试图找到更多关于这个迷你应用概念的材料。网络广播提到它在 django 中很常见。任何人在节点(首选)或 django 中都有关于它的经验或材料?

4

1 回答 1

0

我还将我的 express.js 结构基于 Django。有两种不同的技术,它们都有局限性,它们都不完全像 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;

这就是我开始做一些非常基本但效果很好的事情的方式。

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

index.js

 var app = express();

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

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

 module.exports = subapp;

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

于 2012-10-23T17:00:04.137 回答