在模板中循环,在用玉进行编译时,“无法读取属性长度”的“未定义”错误

所以这是get route / users / search的searchfunction:

// peopleRoutes.js:25:16 exports.search = function (req, res) { var term = req.query.term; User.find({$or: [ {username: {$in: [term]}}, {bio: {$in: [term]}}, {location: {$in: [term]}} ]}, function (err, users) { var fn = jade.compileFile('path/to/template.jade'), {}); var html = fn(users); res.setHeader("Content-Type", 'text/html'); res.send(html); res.end(); }).sort({username: 'asc'}); }; 

这是我想要检索的模板:

 ul.list-group(id='main-list') for user in users li.list-group-item div.col-md-3.no-padd-l img(src= user.gravatarUrl, alt='avatar') div= user.location div.col-md-9.no-padd-r div.strong= user.username div= user.bio 

我继续收到以下错误消息:

 c:\...\node_modules\jade\lib\runtime.js:240 throw err; ^ TypeError: c:\.../path/to/template.jade:2 1| ul.list-group(id='main-list') > 2| - for user in users 3| li.list-group-item 4| div.col-md-3.no-padd-l 5| img(src= user.gravatarUrl, alt='avatar') Cannot read property 'length' of undefined at eval (eval at <anonymous> (c:\...\node_modules\jade\lib\index.js:218:8), <anonymous>:17:31) at eval (eval at <anonymous> (c:\...\node_modules\jade\lib\index.js:218:8), <anonymous>:114:4) at eval (eval at <anonymous> (c:\...\node_modules\jade\lib\index.js:218:8), <anonymous>:120:22) at res (c:\...\node_modules\jade\lib\index.js:219:38) at Query.<anonymous> (c:\...\people\peopleRoutes.js:25:16) at c:\...\mongoose\node_modules\kareem\index.js:177:19 at c:\...\node_modules\mongoose\node_modules\kareem\index.js:109:16 at process._tickCallback (node.js:355:11) 

我读了一个解决scheme,通过在.jade模板的末尾添加一个空行来摆脱“未定义的”错误消息的“无法读取属性长度”,但它不适用于我。 任何想法可以导致这个错误? User.find查询似乎返回正确的值…

我需要使用:

 var html = fn(users: users); 

代替

 var html = fn(users);