Javascript 在node.js中将partials与express一起使用

Javascript 在node.js中将partials与express一起使用,javascript,node.js,express,pug,partials,Javascript,Node.js,Express,Pug,Partials,我正在尝试使用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.se

我正在尝试使用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时,它应该呈现index.jade,它位于视图文件夹中的products文件夹中。在上面,我使用
app.set('views',_udirname+'/views')设置视图目录

index.jade:

h1 Products:
#products!= partial('partials/product', {collection: products})
这应该使部分等价于(partials/product.jade),因为jade是我的视图引擎

我收到一个错误,说“部分未定义”

任何帮助都会很好。谢谢

更新:


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

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

$ npm ls
...
└─┬ express@3.0.0alpha1
...
如果您有兴趣尝试alpha,请务必在上签出文档。在其中,您会注意到
res.partial()
partial()
(在模板中)已被删除,如“查看系统更改:”

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

您可以在链接文章中看到一个意图示例

如果你不感兴趣,那就确保你已经安装了2.x

$ npm install express@2.x
或者通过
package.json

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

npm-express-v
仅适用于安装了大量软件包的express版本