在使用 res.render() 方法时,第二个参数(也就是传递给模板的数据)必须是一个对象。

在使用 res.render() 方法时,第二个参数(也就是传递给模板的数据)必须是一个对象。这是由 Express 框架的设计所决定的,因为模板引擎需要一个键值对结构来注入变量。
为什么必须是对象?
模板引擎(如 EJS、Pug)依靠对象的键来作为变量名,值作为变量内容。举个例子:

javascript
res.render('page', { 
  title: '首页',     // 模板中通过 title 访问
  users: ['Alice']  // 模板中通过 users 访问
});
常见的错误做法
以下这些用法都是错误的,会导致模板无法正确接收数据:

javascript
// ❌ 错误:传递字符串
res.render('page', '直接传字符串'); 

// ❌ 错误:传递数组
res.render('page', [1, 2, 3]); 

// ❌ 错误:不传参数
res.render('page'); // 模板中无法获取数据
特殊情况处理
1. 只需要传递一个变量
如果你只需要传递一个变量,可以把它包装成对象:

javascript
const students = [ {name: 'Alice'} ];
res.render('students', { students }); // 等同于 { students: students }

2. 传递原始类型(如字符串、数字)
同样要把原始类型包装在对象里:

javascript
res.render('error', { 
  message: '404 Not Found' 
});

你可能感兴趣的:(node.js,前端,javascript)