2012-10-24 17 views
0

来源:githubNode.js的,Expressjs,蒙戈,玉:`new`动作传递导致初始化蒙戈实例“的ReferenceError:玉没有定义”

在试图穿过expressjs新鲜实例化mongoose.model 'render功能,我临到以下错误:‘的ReferenceError:玉没有定义’

控制器...

var mongoose = require("mongoose") 
    , Client = mongoose.model("Client") 

exports.new = function (req, res) { 
    res.render("clients/new", { 
     headline: "New Client", 
     client: new Client({}) 
    }) 
} 

我还试图client: new Client(),存储在变种的实例化的对象,然后将它传递给最终的渲染对象而不做任何更改。删除new Client({})位会超过500错误,但不能解决问题。

一些配置...

app.set("views", __dirname + "/app/views") 
app.set("view engine", "jade") 

模型...

var mongoose = require("mongoose") 
    , Schema = mongoose.Schema 

var Client = new Schema({ 
    company: { type: String }, 
    contact: { 
     name: { type: String }, 
     phone: { type: String }, 
     email: { type: String } 
    }, 
    created: { type: Date, default: Date.now } 
}) 

mongoose.model("Client", Client) 

节点v0.8.12
快递> = V3.0.0
猫鼬V3.3.1
玉V0 .27.6

来源:github

回答

4

这个问题很明显是由于模板引擎中的关键字冲突造成的。

我发现你的问题描述足够有趣,可以亲自体验一下。改变玉模板变量标识符clientmyclient并通过之后,新的猫鼬Client模型实例的一切工作得很好:

在应用程序/控制器/ clients_controller:

... 
res.render("clients/new", { 
    headline: "New Client", 
    myclient: new Client({company: 'Foo Company'}) 
}) 
... 

在视图/客户/新:

... 
input(type='text',name='company',placeholder='Company',value='#{myclient.company}') 
... 

我分叉你的仓库,承诺这些改变,并发送给你一个拉请求(首先,因为我对git比较陌生,并抓住每一次学习一些基础知识的机会) 。

+0

完美!当关键词。 (顺便说一句,合并您的拉请求)感谢您的帮助! – davidg