来源:github
在尝试通过expressjs'render
函数传递一个刚刚实例化的mongoose.model时,我遇到了以下错误:“ReferenceError:jade未定义”
控制器......
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()
,将实例化的对象存储在var中,然后将其传递给最终的渲染对象而不做任何更改。删除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
Express> = v3.0.0
猫鼬v3.3.1
翡翠v0.27.6
来源:github
答案 0 :(得分:4)
这个问题显然是由jade模板引擎中的关键字冲突引起的。
我发现你的问题描述很有趣,可以自己尝试一下。将jade模板变量标识符client
更改为myclient
并传递新的mongoose Client
模型实例后,一切正常:
在app / controllers / clients_controller中:
...
res.render("clients/new", {
headline: "New Client",
myclient: new Client({company: 'Foo Company'})
})
...
在views / clients / new中:
...
input(type='text',name='company',placeholder='Company',value='#{myclient.company}')
...
我分叉了您的存储库,提交了这些更改并向您发送了拉取请求(首先是因为我对git相对较新,并抓住每个机会学习更多基础知识)。