Node.js 如何将数据获取到ejs文件?

Node.js 如何将数据获取到ejs文件?,node.js,ejs,Node.js,Ejs,我使用名为“users”的全局数组来存储用户的姓名、密码和城市。当一个新用户注册时,它获取该用户的名称和密码,并将其推送到数组“users”中。成功注册后,用户被重定向到详细信息页面,再次进入城市并提交表单。再次将用户重定向到新页面,其中将显示用户的姓名和城市。我正在获取用户的名称,但城市未定义 以下是我的server.js代码: var users = [] app.get('/',checkAuthenticated, (req, res)=>{ res.render

我使用名为“users”的全局数组来存储用户的姓名、密码和城市。当一个新用户注册时,它获取该用户的名称和密码,并将其推送到数组“users”中。成功注册后,用户被重定向到详细信息页面,再次进入城市并提交表单。再次将用户重定向到新页面,其中将显示用户的姓名和城市。我正在获取用户的名称,但城市未定义

以下是我的server.js代码:

    var users = []
  app.get('/',checkAuthenticated, (req, res)=>{
   res.render("index.ejs", 
   { name: req.user.name,
    city: req.user.city
   });
    console.log(users);
  })
  app.post('/register', checkNotAuthenticated, async (req, res)=>{
  try{
   const hashedPassword =await bcrypt.hash(req.body.password, 10)
   users.push({
       name:req.body.name,
       password:hashedPassword
   })
   res.redirect('/details')
   } catch{
   res.redirect('/register')
  }
 })

 app.post('/details',checkAuthenticated, (req, res)=>{
 try{
    users.push({
        city: req.body.city,
      })
    res.redirect('/')
  } catch{
    res.redirect('/details')
  }
 })
以下是我的index.ejs代码:

 <h1>Hi <%= name %></h1>
 <h1>city: <%= city%></h1>

在node.js中,
Class
被视为程序中任何实际类的默认对象。因此,当节点标记器(帮助您的代码被视为机器代码的东西)出现并用大写字母c查看
类时,它会认为您非常奇怪地试图定义一个类。我建议将该变量重命名为不会有太多冲突的变量。即使只是把名字改成小写也可以解决你的问题

在node.js中,
被视为程序中任何实际类的默认对象。因此,当节点标记器(帮助您的代码被视为机器代码的东西)出现并用大写字母c查看
类时,它会认为您非常奇怪地试图定义一个类。我建议将该变量重命名为不会有太多冲突的变量。即使只是把名字改成小写也可以解决你的问题

为了获得更多信息,我添加了控制台输出,并将“Class”改为“city”,但仍然面临同样的问题@Shronkin用户,看起来city在数组中是一个完全独立的成员,这有什么原因吗?我添加了控制台输出以获取更多信息,并将“Class”更改为“city”,但仍然面临同样的问题@Shronkin用户,看起来city是阵列中一个完全独立的成员,这有什么原因吗?
  [ { 
name: 'lilly',
password:
 '$2b$10$NejINmFcHYLWaxe1xqb.BuojaWyVFQWeNC.FCHskrTMelNow1TS3G' },
{ city: 'xyz'} ]