2017-09-02 83 views
0

我正在使用KeystoneJS版本4.0.0-beta.5,我试图从我的某个模型中加载一些数据,这些数据由于某种原因返回null。我能够为我所有的其他模型加载数据,但是这个数据有点窍门,或者我忽略了一些东西。任何和所有的帮助将不胜感激。Keystone js findOne返回null

节点版本:6.11.2

型号代码

var keystone = require('keystone'); 
var Types = keystone.Field.Types; 

var Event = new keystone.List('Event', { 
    autokey: { 
     path: 'slug', 
     from: 'title', 
     unique: true 
    }, 
    map: { 
     name: 'title' 
    } 
}); 

Event.add({ 
    title: { 
     type: String, 
     required: true 
    }, 
    info: { 
     type: Types.Html, 
     wysiwyg: true, 
     height: 300 
    }, 
    form: { 
    type: Types.Boolean 
    } 
}); 

Event.defaultColumns = 'title'; 
Event.register(); 

路线/查看代码

var keystone = require('keystone'); 

exports = module.exports = function (req, res) { 

    var view = new keystone.View(req, res); 
    var locals = res.locals; 

    // Set locals 
    locals.section = 'event'; 
    locals.filters = { 
     detail: req.params.detail, 
    }; 
    locals.data = { 
     details: [], 
    }; 

    // load event data 
    view.on('init', function (next) { 

     var q = keystone.list('Event').model.findOne({ 
      slug: locals.filters.detail, 

     }) 

     q.exec(function (err, result) { 
      locals.data.detail = result; 
     console.log(result); 
      next(err); 
     }); 

    }); 

    // Render the view 
    view.render('detail'); 
}; 

回答

0

你有一个错字。

您正在设置locals.data。 细节这里:

locals.data = { 
    details: [], 
}; 

...但保存结果到locals.data。 详细这里:

q.exec(function (err, result) { 
    locals.data.detail = result; 
    console.log(result); 
    next(err); 
}); 
+0

谢谢,你是正确的我有一个错字,但出人意料的是,在路线/ index.js。 – TylerMiller47

+0

没问题。很高兴帮助。 –

+0

@ TylerMiller47你是如何解决它的? –