Node.js 使用Jade显示数据:MongoDB+;蒙克+;快车
我试图在客户端显示我的MongoDB数据库中的一些数据,但我不断得到以下错误:Node.js 使用Jade显示数据:MongoDB+;蒙克+;快车,node.js,mongodb,express,pug,monk,Node.js,Mongodb,Express,Pug,Monk,我试图在客户端显示我的MongoDB数据库中的一些数据,但我不断得到以下错误:8 | li 9 |#{牺牲品。first name}>10 |无法读取未定义的属性“first” 我一直在关注这一点,但出于某种原因,我不断遇到错误消息。。。有什么想法吗 my app.js文件的相关部分: var mongo = require('mongodb'); var monk = require('monk'); var db = monk('ds012345.mlab.com:12345/dbname'
8 | li 9 |#{牺牲品。first name}>10 |无法读取未定义的属性“first”
我一直在关注这一点,但出于某种原因,我不断遇到错误消息。。。有什么想法吗
my app.js文件的相关部分:
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('ds012345.mlab.com:12345/dbname');
var routes = require('./routes/index');
var users = require('./routes/users');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
// Make db accessible to router
app.use(function(req,res,next){
req.db = db;
next();
});
app.use('/', routes);
app.use('/users', users);
我的index.js文件:
/* GET datatesting page */
router.get('/datatesting', function(req, res) {
var db = req.db;
var collection = db.get('data');
collection.find({},{},function(e,docs){
res.render('datatesting', {
"datatesting" : docs
});
});
});
My datatesting.jade文件:
extends layout
block content
h1.
List of Victims
ul
each victim, i in datatesting
li
#{victim.first-name}
编辑:下面是从Mongo shell检索到的一些示例数据。收藏中只有13份文件
所以我想出来了!原来我需要在
.jade
文件中仔细检查缩进
复制并重新粘贴上述教程中的示例后,我得到了以下结果:
extends layout
block content
h1.
Victims
ul
each user, i in datatesting
li
img(src= "#{user.image}")
如您所见,
h1
标记不应与ul
标记对齐。之后,它能够正确地打印出我的数据。尝试删除find()
方法中的第二个空对象参数,使其成为find({},function(e,docs){…})
刚刚从find()
方法中删除了第二个{},
。同样的错误:(您是否在mongo shell中测试了查询db.data.find()
?如果是,并且返回了一些文档,您是否可以编辑您的问题以包含从该find()返回的示例文档
query?在mongo shell中进行查询效果很好,我得到了集合中的所有文档。我刚刚添加了一个示例文档。使用括号符号访问jade模板中的documents属性,即,不要使用{Victor.first name}
尝试{Victor[“first name”}
extends layout
block content
h1.
Victims
ul
each user, i in datatesting
li
img(src= "#{user.image}")