NodeJS 如何在app.js中定义这个变量“usersWithSecret is not defined”?

ulydmbyx  于 2023-05-22  发布在  Node.js
关注(0)|答案(3)|浏览(155)
app.get('/secrets', function(req, res){

User.find({'secret': {$ne: null}}, function(err, foundUser){
if(err){
  console.log(err);
} else{
  if(foundUser){
    res.render('secrets', {usersWithSecret: usersWithSecret});
  }
}
});
});

  <%usersWithSecret.forEach(function(user){ %>
  <p class="secret-text"><%=user.secret%></p>
<% }) %>

“userWithSecret”在每次运行此代码时都没有定义。如何定义或声明此变量?谢谢你。

qeeaahzv

qeeaahzv1#

我认为您使用的是ejs模板引擎,这里不是express.js的工作方式,您使用下面的代码呈现了一个视图名为secret

res.render('secrets', {usersWithSecret: usersWithSecret});

所以你可以访问usersWithSecret变量里面的secrets.ejs文件,显然你需要创建这个文件(只需要在views文件夹里面创建一个名为secrets.ejs的文件),然后下面的代码就可以在那里工作了

<%usersWithSecret.forEach(function(user){ %>
  <p class="secret-text"><%=user.secret%></p>
<% }) %>
cwxwcias

cwxwcias2#

您正在将未定义的值呈现给usersWithSecret,请将“foundUser”分配给“usersWithSecret”。res.render('secrets', {usersWithSecret: foundUser});

q43xntqr

q43xntqr3#

app.get("/secrets", function (req, res){
    User.find({"secret": { $ne: null }})
    .then(function(foundUsers) {
      console.log(foundUsers);
      res.render("secrets", { usersWithSecrets: foundUsers });
    })
    .catch(function(err) {
      console.log(err);
    });
 
});

相关问题