首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何呈现用mongoose.js查询的内容?

如何呈现用mongoose.js查询的内容?
EN

Stack Overflow用户
提问于 2014-03-13 03:05:50
回答 1查看 186关注 0票数 0

首先,我使用的是node.js,express.js,mongoose.js/mongodb。

我正在尝试按如下方式路由流量:

代码语言:javascript
复制
app.get('/:username/:language', pageRoutes.fetchLanguage);

当我处理以下查询时,我似乎得到了预期的结果(当我打印到console.log时,我看到了预期的输出)。然而,当我尝试以任何方式呈现页面时,我得到了一个错误。

代码语言:javascript
复制
var User = require('./../models/user-model');
var Language = require('./../models/language-model');
var Element = require('./../models/element-model');

exports.fetchLanguage = function(req, res) {
    var target_lang = req.params.language;

    // Find the user by username, so that I can get their _id
    User.findOne({username: req.params.username}, {_id: 1}, function(err, userdoc){

        // This prints the _id as expected
        console.log(userdoc._id); 

        // Find all languages associated with that user _id
        // (just need a list of language names)
        Language.find({_user_id: userdoc._id}, {name: 1}, function(err, languages){

            // Find the one language that was requested
            Language.findOne({_user_id: userdoc._id, name: target_lang}).populate('sections.elements').exec(function(err, languagedoc){

                // I can log the expected query results...
                console.log(JSON.stringify(languagedoc, undefined, 2));
                console.log(JSON.stringify(languages, undefined, 2));
                // But as soon as i try to render, things go wrong
                res.render('test', {languages: languages, language: languagedoc});
            });
        });
    });

下面是错误:

代码语言:javascript
复制
Language.find({_user_id: userdoc._id}, {name: 1}, function(err, langua
                                    ^

TypeError: Cannot read property '_id' of null
at Promise.<anonymous>

只有当我尝试呈现页面/发送响应时,才会出现错误。我很困惑!

EN

回答 1

Stack Overflow用户

发布于 2014-03-14 15:03:35

事实证明,我只需要删除find操作的_id

代码语言:javascript
复制
// This is correct
Language.find({_user_id: userdoc}, {name: 1}, function(err, languages) {
// NOT this
Language.find({_user_id: userdoc._id}, {name: 1}, function(err, languages) {
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22361430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档