ReferenceError: " postIts.forEach(function(postit)" on list.ejs? postIts is not defined at eval (eval at compile
ReferenceError: " postIts.forEach(function(postit)" on list.ejs? postIts is not defined at eval (eval at compile
我需要循环遍历 object PostIts 并使用 sails.js "1.2.3" 使用 ejs "forEach" Loop Am 显示 "Id", " Title"和 mongodb 在本地主机上,但我收到错误
ReferenceError : postIts is not defined at eval (eval at compile ?
这是 PostItsController.js
上的代码:
module.exports = {
list: function(req, res) {
// res.view('list');
PostIts.find({}).exec(function(err, postIts) {
if (err) {
res.send(500, { error: 'Database Error' });
}
res.view('list', { postIts: postIts });
});
}
};
这里是 list.ejs
上的代码:
<tbody>
<% postIts.forEach(function(postit){ %>
<tr>
<td>
<%= postit.id %>
</td>
<td>
<%= postit.title %>
</td>
<td></td>
</tr>
<% }) %>
</tbody>
我应该在 table 中获取显示在 list.ejs 页面上的 ID 和标题的值,但我却收到一个错误,指出未定义 postIts object。
如果您确定 res.view('list', { postIts: postIts });
确实发送了正确的数据,您可以改用 _.each(postIts, cb()) ...
首先你的路线 '/postIts/list': { view: 'list' },
应该指向一个动作(因为它有后端逻辑)而不是一个视图,所以在你的情况下 "/postIts/list": "PostItsController.list"
,但是如果你使用的是 actions2 东西会更简单
其次你不需要告诉你的用户你有一个数据库错误error: "Database Error"
使用 Actions2
sails generate action post/list
在你的config/route.js
'POST /api/v1/post/list': { action: 'post/list' },
在你的行动中
module.exports = {
friendlyName: "List Posts",
description: "List all post in our site",
inputs: {},
exits: {
success: {
description: "The path to your template file",
viewTemplatePath: "list"
}
},
fn: async function(inputs) {
var posts = await Post.find();
// All done.
return { postIts: posts };
}
};
postit works
嘘!有用
https://sailsjs.com/documentation/concepts/actions-and-controllers/routing-to-actions
出于某种原因,post它的对象没有保存我提出的 post 请求中的数据,而是它只是回忆了我 post 编辑的内容。我使用了'_.each(postIts, function (postit)',它终于起作用了。
对我来说,这就像发生了魔法哈哈哈,但是是的,我从中学到了东西。
我需要循环遍历 object PostIts 并使用 sails.js "1.2.3" 使用 ejs "forEach" Loop Am 显示 "Id", " Title"和 mongodb 在本地主机上,但我收到错误
ReferenceError : postIts is not defined at eval (eval at compile ?
这是 PostItsController.js
上的代码:
module.exports = {
list: function(req, res) {
// res.view('list');
PostIts.find({}).exec(function(err, postIts) {
if (err) {
res.send(500, { error: 'Database Error' });
}
res.view('list', { postIts: postIts });
});
}
};
这里是 list.ejs
上的代码:
<tbody>
<% postIts.forEach(function(postit){ %>
<tr>
<td>
<%= postit.id %>
</td>
<td>
<%= postit.title %>
</td>
<td></td>
</tr>
<% }) %>
</tbody>
我应该在 table 中获取显示在 list.ejs 页面上的 ID 和标题的值,但我却收到一个错误,指出未定义 postIts object。
如果您确定 res.view('list', { postIts: postIts });
确实发送了正确的数据,您可以改用 _.each(postIts, cb()) ...
首先你的路线 '/postIts/list': { view: 'list' },
应该指向一个动作(因为它有后端逻辑)而不是一个视图,所以在你的情况下 "/postIts/list": "PostItsController.list"
,但是如果你使用的是 actions2 东西会更简单
其次你不需要告诉你的用户你有一个数据库错误error: "Database Error"
使用 Actions2
sails generate action post/list
在你的config/route.js
'POST /api/v1/post/list': { action: 'post/list' },
在你的行动中
module.exports = {
friendlyName: "List Posts",
description: "List all post in our site",
inputs: {},
exits: {
success: {
description: "The path to your template file",
viewTemplatePath: "list"
}
},
fn: async function(inputs) {
var posts = await Post.find();
// All done.
return { postIts: posts };
}
};
postit works
嘘!有用 https://sailsjs.com/documentation/concepts/actions-and-controllers/routing-to-actions
出于某种原因,post它的对象没有保存我提出的 post 请求中的数据,而是它只是回忆了我 post 编辑的内容。我使用了'_.each(postIts, function (postit)',它终于起作用了。
对我来说,这就像发生了魔法哈哈哈,但是是的,我从中学到了东西。