我正在开发一个待办事项应用程序,但我很难使POST请求生效。我已经尝试过使用for循环和for Each循环。不起作用。
<% todos.forEach(item => { %>
<li><%= items.item %></li>
<% });%>
还有这个
<% for(let i=0; i < todos.length; i++) { %>
<li><%= todos[i].item %></li>
<% } %>
我的app.js:
const express= require('express');
const todoController = require ('./controllers/todoController');
const app = express();
app.set('view engine', 'ejs');
app.use(express.static('./public'));
todoController(app);
app.listen(3000);
我的控制器:
let data = [
{ item: 'wake up and pray' },
{ item: 'go to the gym' },
{ item: 'fire my laptop and...CODE!!' }
];
module.exports = function(app) {
app.get('/todo' ,function(req, res) {
res.render('todo', {todos:data});
});
app.post('/todo',function(req, res) {
data.push(req.body);
res.render('todo', {todos:data});
});
app.delete('/todo' ,function(req, res) {});
};
这是错误消息:
ReferenceError: C:\Users\HP LAPTOP\Desktop\toDoApp\views\todo.ejs:20
18| <ul>
19| <% todos.forEach(item => { %>
>> 20| <li><%= items.item %></li>
21| <% });%>
22| </ul>
23| </body>
答案 0 :(得分:0)
<% todos.forEach(item => { %>
<li><%= items.item %></li>
<% });%>
您的JS代码基本上是todos.forEach(item => some_formatting(item))
。
在lambda内,您可以访问item
,而不是items.item
。
答案 1 :(得分:0)
您已循环使用“ todos.forEach(项目 => {});”但使用了“ 项目。项目”。
已编辑 正确的代码是
<% todos.forEach(function (item) { %>
<li><%= item.item %></li>
<% }) %>