嗨,我正在嘗試在 node 和 express 的幫助下制作 todo 應用程式。前端一切正常,但在終端中顯示此錯誤。我已經通過了 todo 物件,盡管它顯示 id 為 undefiened。
我在服務器中的表演路線
//Fake Database
let todos = [
{
id: uuid(),
todo: 'Listening to Mozart'
}
]
app.get('/:id', (req, res)=>{
const {id} = req.params;
const todo = todos.find(todo => todo.id == id);
res.render('show', {todo: todo});
我的 show.ejs 檔案
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
</head>
<%- include ('_styles.ejs') %>
<%- include ('_new_styles.ejs') %>
<body>
<div >
<div >
<div >
<h2>ID:<%= todo.id %> </h2>
<p >
<%= todo.todo %>
</p>
</div>
</div>
<div >
<a href="/"><i ></i></a>
</div>
</div>
<div ></div>
<div ></div>
</body>
</html>
錯誤是:
TypeError: /home/linux/Desktop/todo/views/show.ejs:16
14| <div >
15| <div >
>> 16| <h2>ID:<%= todo.id %> </h2>
17| <p >
18| <%= todo.todo %>
19| </p>
Cannot read properties of undefined (reading 'id')
at eval ("/home/linux/Desktop/todo/views/show.ejs":18:31)
at show (/home/linux/Desktop/todo/node_modules/ejs/lib/ejs.js:692:17)
at tryHandleCache (/home/linux/Desktop/todo/node_modules/ejs/lib/ejs.js:272:36)
at View.exports.renderFile [as engine] (/home/linux/Desktop/todo/node_modules/ejs/lib/ejs.js:489:10)
at View.render (/home/linux/Desktop/todo/node_modules/express/lib/view.js:135:8)
at tryRender (/home/linux/Desktop/todo/node_modules/express/lib/application.js:640:10)
at Function.render (/home/linux/Desktop/todo/node_modules/express/lib/application.js:592:3)
at ServerResponse.render (/home/linux/Desktop/todo/node_modules/express/lib/response.js:1017:7)
at /home/linux/Desktop/todo/server.js:38:9
at Layer.handle [as handle_request] (/home/linux/Desktop/todo/node_modules/express/lib/router/layer.js:95:5)
uj5u.com熱心網友回復:
您確定todos.find(todo => todo.id == id);要回傳任何匹配項嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/418437.html
標籤:
