用 Jade 显示数据:MongoDB + Monk + ExpressJS
Display data with Jade: MongoDB + Monk + ExpressJS
我试图在客户端显示我的 MongoDB 数据库中的一些数据,但我不断收到以下错误:8| li 9| #{victim.first-name} > 10| Cannot read property 'first' of undefined
我一直在关注此 tutorial,但出于某种原因,我将 运行 保留在该错误消息中...有什么想法吗?
我的 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
});
});
});
我的 datatesting.jade 文件:
extends layout
block content
h1.
List of Victims
ul
each victim, i in datatesting
li
#{victim.first-name}
编辑:这是从 Mongo shell 检索到的一些样本数据。集合中只有 13 个文档。
{
"_id": {
"$oid": "56e5f15f0e1fc43fe589f5a9"
},
"first-name": "Tanisha",
"last-name": "Anderson",
"age": 37,
"gender": "F",
"killed": "Y",
"image": "http://google.com",
"street-address": "Ansel Road, Cleveland, Ohio",
"city": "Cleveland",
"state": "Ohio",
"latitude": 41.52067,
"longitude": -81.6222,
"date": "11/1/2014"
}
所以我想通了!结果我需要仔细检查 .jade
文件中的缩进。
从上述教程中复制并重新粘贴示例后,我得到了这个:
extends layout
block content
h1.
Victims
ul
each user, i in datatesting
li
img(src= "#{user.image}")
如您所见,h1
标签不应与 ul
标签对齐。之后,它能够正确打印出我的数据。
我试图在客户端显示我的 MongoDB 数据库中的一些数据,但我不断收到以下错误:8| li 9| #{victim.first-name} > 10| Cannot read property 'first' of undefined
我一直在关注此 tutorial,但出于某种原因,我将 运行 保留在该错误消息中...有什么想法吗?
我的 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
});
});
});
我的 datatesting.jade 文件:
extends layout
block content
h1.
List of Victims
ul
each victim, i in datatesting
li
#{victim.first-name}
编辑:这是从 Mongo shell 检索到的一些样本数据。集合中只有 13 个文档。
{
"_id": {
"$oid": "56e5f15f0e1fc43fe589f5a9"
},
"first-name": "Tanisha",
"last-name": "Anderson",
"age": 37,
"gender": "F",
"killed": "Y",
"image": "http://google.com",
"street-address": "Ansel Road, Cleveland, Ohio",
"city": "Cleveland",
"state": "Ohio",
"latitude": 41.52067,
"longitude": -81.6222,
"date": "11/1/2014"
}
所以我想通了!结果我需要仔细检查 .jade
文件中的缩进。
从上述教程中复制并重新粘贴示例后,我得到了这个:
extends layout
block content
h1.
Victims
ul
each user, i in datatesting
li
img(src= "#{user.image}")
如您所见,h1
标签不应与 ul
标签对齐。之后,它能够正确打印出我的数据。