将参数传递给 nodejs ejs 模板
Passing Params to nodejs ejs template
伙计们,我正在尝试在我的 .ejs 文件中呈现 MongoDB 记录,但是,我 console.log 在我的路线结束之前的变量,我得到了期望值,但是,如果在 .ejs 文件中变得未定义
下面是代码:
router.get("/new",function(req,res){
var selectedMake;
console.log("Welcome to new make route!");
Make.find({},function(err,result){
if(err){
console.log("an error occured while fetching the data");
}else{
if(req.query.id){
Make.findById(req.query.id,function(err,foundMake){
console.log("found the query string");
selectedMake = foundMake;
console.log(selectedMake); // renders expected value when passing valid ID in the query string
})
}
res.render("vehicles/newvehiclemake",{selectedMake: selectedMake, makes:result,modelId: req.query.id});
}
})
});
这是使用变量 selectedMake 的 .ejs 摘录:
<% if (!typeof selectedMake == undefined) { %>
<% selectedMake.models.forEach(function(model){ %>
<tr><td><%= model.name %></td></tr>
<% }) %>
<% }else { %>
<tr><td>No Models available for the selected Make</td></tr>
<% } %>
感谢您的意见并提前致谢。
我不确定,但你在 .ejs 文件的第一行出错了。
试试这个:
<% if (typeof selectedMake !== 'undefined') { %>
typeof
任何变量 returns 一个字符串所以你必须在你的 ejs
中检查 'undefined'
<% if (typeof selectedMake !== 'undefined') { %>
伙计们,我正在尝试在我的 .ejs 文件中呈现 MongoDB 记录,但是,我 console.log 在我的路线结束之前的变量,我得到了期望值,但是,如果在 .ejs 文件中变得未定义
下面是代码:
router.get("/new",function(req,res){
var selectedMake;
console.log("Welcome to new make route!");
Make.find({},function(err,result){
if(err){
console.log("an error occured while fetching the data");
}else{
if(req.query.id){
Make.findById(req.query.id,function(err,foundMake){
console.log("found the query string");
selectedMake = foundMake;
console.log(selectedMake); // renders expected value when passing valid ID in the query string
})
}
res.render("vehicles/newvehiclemake",{selectedMake: selectedMake, makes:result,modelId: req.query.id});
}
})
});
这是使用变量 selectedMake 的 .ejs 摘录:
<% if (!typeof selectedMake == undefined) { %>
<% selectedMake.models.forEach(function(model){ %>
<tr><td><%= model.name %></td></tr>
<% }) %>
<% }else { %>
<tr><td>No Models available for the selected Make</td></tr>
<% } %>
感谢您的意见并提前致谢。
我不确定,但你在 .ejs 文件的第一行出错了。 试试这个:
<% if (typeof selectedMake !== 'undefined') { %>
typeof
任何变量 returns 一个字符串所以你必须在你的 ejs
'undefined'
<% if (typeof selectedMake !== 'undefined') { %>