2015-08-25 34 views
0

我是新來的意思和mongodb,並試圖找出如何填充我的問題的答案。我只是改變了我正在學習的平臺中的單詞(例子是帖子和評論)。在mongodb填充協會

這是我收到的錯誤消息。

/Users/joerigby/Documents/codingdojo/full mean/blacktest3/node_modules/express/lib/view.js:62 
throw new Error('No default engine was specified and no extension was prov 
    ^
Error: No default engine was specified and no extension was provided. 
at new View (/Users/joerigby/Documents/codingdojo/full mean/blacktest3/node_modules/express/lib/view.js:62:11) 
at EventEmitter.render (/Users/joerigby/Documents/codingdojo/full mean/blacktest3/node_modules/express/lib/application.js:569:12) 
at ServerResponse.render (/Users/joerigby/Documents/codingdojo/full mean/blacktest3/node_modules/express/lib/response.js:961:7) 
at /Users/joerigby/Documents/codingdojo/full mean/blacktest3/server/controllers/answers_c.js:53:12 
at Query.<anonymous> (/Users/joerigby/Documents/codingdojo/full mean/blacktest3/node_modules/mongoose/lib/query.js:2112:28) 
at /Users/joerigby/Documents/codingdojo/full mean/blacktest3/node_modules/mongoose/node_modules/kareem/index.js:177:19 
at /Users/joerigby/Documents/codingdojo/full mean/blacktest3/node_modules/mongoose/node_modules/kareem/index.js:109:16 
at process._tickCallback (node.js:355:11) 
24 Aug 16:48:22 - [nodemon] app crashed - waiting for file changes before starting... 

下面是我的代碼..

從應答模型

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 
var ObjectID = require('mongodb').ObjectID; 

var AnswerSchema = new mongoose.Schema({ 
    answer: String, 
    description: String, 
    likes: {type: Number, default: 0}, 
    created_at: {type: Date, default: Date.now }, 
    _question: {type: Schema.ObjectId, ref: 'Question'} 
}); 
mongoose.model('Answer', AnswerSchema); 

從問題模型在服務器端

show: function(req, res){ 
     console.log(req.params.id); 

     Question.findOne({_id: req.params.id}) 
       .populate('answers') 
      .exec(function(err, question) { 
      res.render('question', {question: question}); 
       }); 
      } 
    } 

answers_controller.js

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var ObjectID = require('mongodb').ObjectID; 


var QuestionSchema = new mongoose.Schema({ 
    title: String, 
    description: String, 
    created_at: {type: Date, default: Date.now }, 
    answers: [{type: Schema.Types.ObjectId, ref: 'Answer'}] 
}); 
mongoose.model('Question', QuestionSchema); 

讓我知道你是否需要別的東西來看待。 謝謝你的時間。

+0

該錯誤消息指的是您的視圖渲染引擎,因此它可能與MongoDB或人口無關。對該錯誤消息的搜索會得到很多SO命中。 – JohnnyHK

回答

0

該錯誤不適用於Mongo或Mongoose。檢查錯誤消息中的堆棧跟蹤。問題是從res.render。爲了使用這個方法,你必須配置express來使用默認的視圖引擎(ejs,jade等)或者在'question'之後提供一個文件擴展名,以便它知道爲了呈現HTML而尋找哪個模板文件。

// in your main server file 

// set default view engine 
app.set('view engine', 'ejs'); 
// set view folder (where it looks for the template files 
app.set('views', pathToViewFolder); 

現在你可以在pathToViewFolder創建question.ejs文件的文件夾中。