Node.js 通过everyauth和express将用户详细信息传递给jade

Node.js 通过everyauth和express将用户详细信息传递给jade,node.js,express,Node.js,Express,基于Mircosoft的WebMatrix 2中的示例项目,我已经与everyauth和express一起启动了一个小型webapp。 我无法理解的是信息是如何传递给视图的,以及视图是如何从局部视图粘在一起的 该视图由名为layout.jade的父视图和部分视图(例如index.jade)生成。然而,这些观点似乎互不相关 路由似乎由以下代码管理: app.configure(function() { app.set('views', __dirname + '/views');

基于Mircosoft的WebMatrix 2中的示例项目,我已经与everyauth和express一起启动了一个小型webapp。 我无法理解的是信息是如何传递给视图的,以及视图是如何从局部视图粘在一起的

该视图由名为layout.jade的父视图和部分视图(例如index.jade)生成。然而,这些观点似乎互不相关

路由似乎由以下代码管理:

app.configure(function() {
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(require('./middleware/locals'));
    app.use(express.cookieParser());
    app.use(express.session({ secret: '[secret]' }));
    app.use(everyauth.middleware());
    app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] }));
    app.use(connect.static(__dirname + '/public'));
    app.use(app.router);
});
路线的定义如下:

app.get('/', function(req, res) {        
    res.render('index', { title: 'Home Page.  ' })
});

这似乎完美地融合了布局和局部视图,但我不知道如何实现。有人能解释这是怎么回事吗

如果你不是来自ruby背景,这可能有点难理解,希望这会有所帮助

默认情况下,express将呈现一个“布局”(在layout.jade中)。然后在每个页面上呈现布局,除非另有规定。虽然这可能对头部始终相同的网站和博客很有帮助,但我发现在web应用程序中这很麻烦。如果愿意,可以通过将以下代码添加到应用程序设置中来禁用:

app.set('view options',{layout:false})

然后Express将呈现您的视图(在本例中为index.jade)。索引是内容的主要部分

Express还可以渲染局部视图,这是视图内部的局部视图。这对页脚之类的项目很有帮助,但会影响性能。请务必注意,局部视图与视图不同

我发现没有Jade/诱人经验的人使用EJS而不是Jade的学习曲线较小,因为它的流程很像HTML

下面是一些视频,在我第一次开始使用express时,它们确实帮助我掌握了视图/部分和中间件。Nodetuts是一个很好的资源。Express文档也已发展成为非常宝贵的资源,编码愉快,祝您好运


谢谢,这稍微澄清了一些事情。