目前我看到的一切都是显示整个文档,而不仅仅是一个字段。我如何只显示一个字段?
我已经尝试了以下但是我得到了“未定义”的地方,我没有看到任何显示。
方式1主要的js:
// app.js
var schema = new mongoose.Schema({ a_field : String },
{ collection : 'the_col_with_data' });
var DocumentModel = mongoose.model('Doc', schema);
var a_document = DocumentModel.findOne({}, callback);
app.get('/', function(req, res) {
res.render('index', {
pass_var: a_document.a_field
});
});
方式1观点:
// index.jade
#{ pass_var }
方式2主要的js:
// app.js
var schema = new mongoose.Schema({ a_field : String },
{ collection : 'the_col_with_data' });
var DocumentModel = mongoose.model('Doc', schema);
var a_document = DocumentModel.findOne({}, callback);
app.get('/', function(req, res) {
res.render('index', {
pass_var: a_document
});
});
方式2观点:
// index.jade
#{ pass_var.a_field }
答案 0 :(得分:1)
与mongoose的交互是异步的。这意味着,您不能依赖于猫鼬操作的返回值。您必须在回调中执行对文档进行操作的逻辑。因此,在您的情况下,a_document
并未指向您要查找的文档。相反,您必须在回调中使用该文档:
app.get('/', function(req, res) {
DocumentModel.findOne({}, function(err, doc) {
if(err) {
res.send(500);
return;
}
res.render('index', {pass_var: doc});
});
});