当前位置: 首页 > 知识库问答 >
问题:

express-ejs-layout有时无法检测传递参数

景国兴
2023-03-14

我正在呈现一个页面,其中我正在传递数据“userinfo”,但有时它呈现,有时它显示这个引用错误,不确定为什么?我的问题是,如果有任何错误,那么它应该是完全不起作用的。我该怎么修好它?

<pre>  

    ReferenceError: /Users/user/Desktop/iSlamic/views/layout.ejs:77
       75|                     </li>
       76|                     
    >> 77|                          if(userInfo)
       78|                  <li class="dropdown">
       79|                         <a href="#" class="dropdown-toggle" data-toggle="dropdown">Motiur<b class="caret"></b></a>
       80|                         <ul class="dropdown-menu">

    userInfo is not defined
       at eval (eval at <anonymous> (/Users/user/Desktop/iSlamic/node_modules/ejs/lib/ejs.js:491:12), <anonymous>:11:10)
       at returnedFn (/Users/user/Desktop/iSlamic/node_modules/ejs/lib/ejs.js:520:17)
       at View.exports.renderFile [as engine] (/Users/user/Desktop/iSlamic/node_modules/ejs/lib/ejs.js:374:31)
       at View.render (/Users/user/Desktop/iSlamic/node_modules/express/lib/view.js:126:8)
       at tryRender (/Users/user/Desktop/iSlamic/node_modules/express/lib/application.js:639:10)
       at EventEmitter.render (/Users/user/Desktop/iSlamic/node_modules/express/lib/application.js:591:3)
       at ServerResponse.render (/Users/user/Desktop/iSlamic/node_modules/express/lib/response.js:961:7)
       at /Users/user/Desktop/iSlamic/node_modules/express-ejs-layouts/lib/express-layouts.js:108:14
       at View.exports.renderFile [as engine] (/Users/user/Desktop/iSlamic/node_modules/ejs/lib/ejs.js:379:10)
       at View.render (/Users/user/Desktop/iSlamic/node_modules/express/lib/view.js:126:8)
       at tryRender (/Users/user/Desktop/iSlamic/node_modules/express/lib/application.js:639:10)
       at EventEmitter.render (/Users/user/Desktop/iSlamic/node_modules/express/lib/application.js:591:3)
       at ServerResponse.render (/Users/user/Desktop/iSlamic/node_modules/express/lib/response.js:961:7)
       at ServerResponse.res.render (/Users/user/Desktop/iSlamic/node_modules/express-ejs-layouts/lib/express-layouts.js:77:12)
       at /Users/user/Desktop/iSlamic/app.js:97:7
       at Layer.handle_error (/Users/user/Desktop/iSlamic/node_modules/express/lib/router/layer.js:71:5)}

</pre>


   
   
<%if(userInfo){%>
                 <li class="dropdown">
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Motiur<b class="caret"></b></a>
                        <ul class="dropdown-menu">
                            <li>
                                <a href="/admin/insert">Insert</a>
                            </li>
                            <li>
                                <a href="/admin/update">Update</a>
                            </li>
                            <li>
                                <a href="/admin/delete">Delete</a>
                            </li>
                            <li>
                                <a  href="/logout">Logout</a> 
                            </li>
                        </ul>
                    </li>
                     <% }else{ %>  
                     <li>
                      <a  href="/admin/login">Login</a> 
                      </li>
                    <%}%>
          

null

我正在通过userinfo传递布尔值。


共1个答案

匿名用户

我找到答案了。@noisypixy您是对的,我的video_Data没有正确填充。当我呈现我的视图时,有时视频数据没有得到。所以我改变了我的代码,现在它像预期的那样工作。



    router.get('/speaker/:name', function(req, res, next) {

      var video_Data;

      was.find({"name":req.params.name, "wasType":"video"}).sort({_id:-1}).limit(5).exec(function(err,videoDocs){

      if(err)
      {
        res.json(err)
              mongoose.connection.close();
      }
      else
      {

        video_Data = videoDocs;

        was.find({"name":req.params.name, "wasType":"audio"}).sort({_id:-1}).limit(5).exec(function(err,docs){
        if(err)
      {
              res.json(err);
              mongoose.connection.close();
      }
      else
      {
        if(video_Data==null&&docs==null)

         {
          res.json("Data does not exist");
         }else{
          res.render('video2', {"data":docs,"videoData": video_Data,"userInfo":req.session.admin});

         }

      }

      });


      }
      });



    });

相关问题


  • 使用--proxy-user、--keytab和--主体参数在hadoop kerberos中提交火花
  • 我想用其他控制器文件中的一些参数加载新的FXML文件
  • 如何在db-changelog.xml中为spring应用程序使用Liquibase参数
  • 堆参数对GC/性能的影响?
  • 使用句子检测器评估工具时,OpenNLP如何计算假阴性?
  • 如何在场景大纲示例中传递|(管道)符号
  • 使用 mvn-tycho 时将参数传递给依赖性日食插件
  • 如何将1个场景的输出作为输入传递给2个场景
  • 如何在进入 dll 时访问堆栈上传递的参数?
  • 未绑定命名参数:Spring Boot中的DATE_FORMAT本机查询
  • 带参数的CRUDRepository本机查询
  • 自定义查询Spring数据JPA中的参数处理
  • 如何从带有字节好友的方法描述中获取 Java 方法参数的实际名称?
  • Spring护套2:使用Flyway时检测到明显的连接泄漏
  • 运行检测显示的Applescript
  • Flyway-通过引用AWS ssm参数和机密管理中的用户名和密码,使用Flyway在postgres数据库中创建具有密码的用户
  • Azure DevOps Release Pipeline 将 docker 映像标记传递到 kubernetes 配置
  • 使用从DevOps到ACR的构建参数构建并推送docker映像
  • msbuild参数 /p: OutDir="$(build.artifactasting目录)"导致一些项目错过"bin/发布"文件夹
  • 无法将列表传递给Azure任务

共有3个答案

百里胜泫
2023-03-14
热门标签
公西翊歌
2023-03-14
相关问题
景轶
2023-03-14

我找到答案了。@noisypixy您是对的,我的video_Data没有正确填充。当我呈现我的视图时,有时视频数据没有得到。所以我改变了我的代码,现在它像预期的那样工作。



    router.get('/speaker/:name', function(req, res, next) {

      var video_Data;

      was.find({"name":req.params.name, "wasType":"video"}).sort({_id:-1}).limit(5).exec(function(err,videoDocs){

      if(err)
      {
        res.json(err)
              mongoose.connection.close();
      }
      else
      {

        video_Data = videoDocs;

        was.find({"name":req.params.name, "wasType":"audio"}).sort({_id:-1}).limit(5).exec(function(err,docs){
        if(err)
      {
              res.json(err);
              mongoose.connection.close();
      }
      else
      {
        if(video_Data==null&&docs==null)

         {
          res.json("Data does not exist");
         }else{
          res.render('video2', {"data":docs,"videoData": video_Data,"userInfo":req.session.admin});

         }

      }

      });


      }
      });



    });

 类似资料:
  • express-ejs-layouts Layout support for ejs in express Installation $ npm install express-ejs-layouts Example Check the example folder. git clone https://github.com/soarez/express-ejs-layouts.git cd ex

  • 问题内容: 我有一个很大的对象,需要将其传递给客户端脚本中的函数。我尝试使用JSON.stringify,但是这种方法遇到了一些问题- 主要与性能有关。是否可以在ejs中执行类似的操作? 在我的客户端脚本中,我会将这个对象传递给类似这样的函数 当我尝试这个我得到 要么 问题答案: 那是预期的行为。您的模板引擎正在尝试从对象创建一个字符串,该字符串会导致[Object object]。如果您真的想要

  • 以下代码: 运行时失败: 为什么不允许像其他语言一样传递null?

  • 问题内容: 我正在使用tkinter构建的GUI的一部分有一个弹出窗口,显示“请在程序运行时等待”。然后完成后,窗户便消失了。我正在使用widget.after命令打开窗口并运行命令。但是,如果我通过函数调用参数,则永远不会出现弹出窗口。这是一个例子: 这样可以很好地运行并完成我想要的操作,在运行备份时弹出窗口,然后在备份后关闭窗口。但是,如果我从widget ..传递了and参数,就像下面的代码

  • 我有一个片段a,包含一个片段B。 当片段A处于onActivityCreated生命周期中时,我想从片段A向片段B传递一个参数(因为我有一个来自viewmodel的数据,该数据此时到达)。 在我的片段B中,我无法得到这个论点。我有一个空异常。 你有办法解决我的问题吗? 这是我的代码 片段A 片段B fragment_a.xml

  • 问题内容: 我有一个使用处理程序发布可运行实例的线程。它工作得很好,但是我很好奇我如何将参数传递给Runnable实例使用?也许我只是不了解此功能的工作原理。 为了避免出现“您为什么需要此问题”的问题,我有一个线程化的动画,必须调出UI线程来告诉它实际绘制的内容。 问题答案: 只需使用接受参数的构造函数实现的类就可以了, 您可以使用参数化构造函数创建Runnable类的实例。