Express 快速路由基础
我只是从webdev和Express开始,对流程感到困惑 在我的Express 快速路由基础,express,parse-platform,Express,Parse Platform,我只是从webdev和Express开始,对流程感到困惑 在我的app.js中: // RESTful routes for the home object. app.get('/home', homeController.index); app.get('/home/languages/:id', homeController.languages); 在myhome.jsroute中: var _ = require('underscore'); // Display all users.
app.js
中:
// RESTful routes for the home object.
app.get('/home', homeController.index);
app.get('/home/languages/:id', homeController.languages);
在myhome.js
route中:
var _ = require('underscore');
// Display all users.
exports.index = function(req, res) {
Parse.Cloud.run('getAllUsers', {}, {
success: function(result) {
console.log("result = " + result);
res.render('home/index', {
users: result
});
},
error: function(error) {
}
});
};
// Display all the available languages
exports.languages = function(req, res) {
Parse.Cloud.run('getAllLanguages', {}, {
success: function(result) {
res.render('home/languages', {
languages: result
});
},
error: function(error) {
}
});
};
最后是HTML,我试图在其中显示包含语言对象的下拉列表:
<div class="page-header" id="languages">
<div class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Choose Language</a>
<b class="caret"></b>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
<% languages.forEach(function(language) { %>
<li><a href="<%= '/languages/' + language.id %>"><%= language.get("name") %></a></li>
<% }) %>
</ul>
</ul>
</div>
</div>
您的路由正常,请执行console.log(结果)并检查是否为null或undefined@DayanMorenoLeon. 我在exports.languages中包含了一条log语句,但它从未运行过。所以我很确定这个函数永远不会被调用。。。我所困惑的是如何从HTML中调用它。粘贴的代码或对问题的描述中存在错误,我发现错误是由于从主控制器在索引模板中渲染语言而导致的。我不确定这是否是问题所在。用户和语言都是我需要在同一页面上呈现的数据。我想这是我搞混的地方。我需要挂断这些电话吗?。。。我正在尝试在home controller的索引模板中呈现“语言”和两个“用户”。如何呈现取决于您的实现,但您需要提供语言变量。您可以连锁或使用承诺,并在所有承诺兑现时执行您的呼叫。
ReferenceError: cloud/views/home/index.ejs:17
15| <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
16|
>> 17| <% languages.forEach(function(language) { %>
18| <li><a href="<%= '/languages/' + language.id %>"><%= language.get("name") %></a></li>
19| <% }) %>
20|
languages is not defined
at eval (eval at <anonymous> (ejs.js:256:12), <anonymous>:33:448)
at ejs.js:261:15
at Object.exports.render (ejs.js:299:13)
at View.exports.renderFile [as engine] (ejs.js:325:22)
at View.render (express_view.js:77:8)
at Function.app.render (express_application.js:516:10)
at res.render (express_response.js:763:7)
at Parse.Cloud.run.success (controllers/home.js:10:10)
at Parse.js:2:4591
at r (Parse.js:2:3909)
exports.index = function(req, res) {
console.log("users first");
Parse.Cloud.run('getAllUsers', {}, {
success: function(users) {
Parse.Cloud.run('getAllLanguages', {}, {
success: function(languages) {
res.render('home/index', {
languages: languages,
users: users
});
},
error: function(error) {
}
});
},
error: function(error) {
}
});
};