【问题标题】:using partials with express in node.js在 node.js 中使用带有 express 的部分
【发布时间】:2012-04-30 15:11:44
【问题描述】:

我正在尝试使用 node.js 渲染部分。这是我的代码。

app.js:

  var express = require('express')
  , routes = require('./routes');

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

// Configuration

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function(){
  app.use(express.errorHandler());
});

// Routes

app.get('/', routes.index);

var products = require('./products.js');

app.get('/products', function(req, res) {
    res.render('products/index', {locals: {
               products: products.all
               }
               });
});

app.listen(3000);

当我转到 localhost:3000/products 时,它应该呈现位于 products 文件夹中的 index.jade,它位于 views 文件夹中。上面我使用 app.set('views', __dirname + '/views'); 设置了 views 目录

index.jade:

h1 Products:
#products!= partial('partials/product', {collection: products})

这应该呈现部分等价于 (partials/product.jade) 因为翡翠是我的视图引擎。

我收到一条错误消息,提示“未定义部分”

任何帮助都会很棒。谢谢

更新:

这解决了我的部分错误,谢谢。我重新安装了 2.5.9。

【问题讨论】:

    标签: javascript node.js express pug partials


    【解决方案1】:

    检查您安装的 Express JS 版本——您可能拥有 3.0 alpha:

    $ npm ls
    ...
    └─┬ express@3.0.0alpha1
    ...
    

    如果您有兴趣试用 Alpha,请务必查看 Migrating from 2.x to 3.x 上的文档。在其中,您会注意到 res.partial()partial()(在模板中)已被删除——如“查看系统更改:”中所述

    通过删除 Express 3.x 模板引擎中的“布局”和部分的概念,将对文件 I/O 进行更好的控制。这意味着与模板引擎的集成更加容易,并且大大简化了视图系统的内部结构。

    您可以在链接文章Use Jade blocks, not layouts 中查看意图示例。

    如果您不感兴趣,请确保您已安装 2.x。

    $ npm install express@2.x
    

    或通过package.json

    {
        ...
        "dependencies": {
            ...
            "express": "2.x"
        }
    }
    

    【讨论】:

    • npm express -v 如果您安装了很多软件包,则仅适用于 express 的版本
    猜你喜欢
    • 2012-09-28
    • 2023-03-09
    • 1970-01-01
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 2017-03-10
    相关资源
    最近更新 更多