Node.js 如何使用ejs中两次传递的数据

Node.js 如何使用ejs中两次传递的数据,node.js,ejs,Node.js,Ejs,我正在用node js做一个项目,我需要在一个ejs文件中显示我从数据库中获取的一些数据。第二次尝试显示数据时,它是空的(我正在使用的数据列表有空字段)。我怎么做 ejs文件中我多次使用数据的部分: <body> <%- include('../partials/navbarHorizontal.ejs') %> <div class="container justify-content-center my-4"> <div c

我正在用node js做一个项目,我需要在一个ejs文件中显示我从数据库中获取的一些数据。第二次尝试显示数据时,它是空的(我正在使用的数据列表有空字段)。我怎么做

ejs文件中我多次使用数据的部分:

<body>
<%- include('../partials/navbarHorizontal.ejs') %>

<div class="container justify-content-center my-4">
  <div class="row shadow-sm my-4">
    <div class="col m-4">
      <form action="/dekanat" method="POST">
        <div>Përditësoni dekanatin</div>

        <div class="row">
          <div class="row">
            <label class="small gray" for="dekan">Dekani</label>
            <div>
              <input list="dekan_list" name="dekan" id="dekan" class="inputText"/>
              <datalist id="dekan_list">

              //The first time i use the data

                <%pedagoge.forEach(element => {%>
                <option
                  value="<%=element.emer_ped%> <%=element.mbiemer_ped%>"
                  data-id="<%=element.id_ped%>"
                ></option>
                <%});%>
              </datalist>
            </div>
          </div>
          <div class="col">
            <label class="small gray" for="zvDek1">Zv. Dekani</label>
            <div>
              <input list="zvDek1_list" name="zvDek1" id="zvDek1" class="inputText" />
              <datalist id="zvDek1_list">

              //The second time i use the data

                <% pedagoge.forEach(element =>{%>
                <option
                  value="<%element.emer_ped%> <%element.mbiemer_ped%>"
                  data-id="<%element.id_ped%>"
                ></option>
                <%});%>
              </datalist>
            </div>
          </div>

          <div class="col">
            <label class="small gray" for="zvDek2">Zv. Dekani</label>
            <div>
              <input list="zvDek2_list" name="zvDek2" id="zvDek2" class="inputText"/>

              <datalist id="zvDek2_list">

              //The third time i use the data

                <% pedagoge.forEach(element =>{%>
                <option
                  value="<%element.emer_ped%> <%element.mbiemer_ped%>"
                  data-id="<%element.id_ped%>"
                ></option>
                <%});%>
              </datalist>
            </div>
          </div>
        </div>

        <div class="row mt-3 text-center">
          <div class="col-4">
            <input type="submit" value="Ruaj" class="rounded-pill buton" id="saveDek" />
          </div>

          <div class="col-4">
            <input type="reset" value="Fshi" class="rounded-pill buton" id="fshi"/>
          </div>
        </div>
      </form>
    </div>
  </div>
</div>
我知道它是非常嵌套的,但是我对NodeJS是新手,我不知道如何做

生成的html代码:

<div class="row shadow-sm my-4">
        <div class="col m-4">
          <form action="/dekanat" method="POST">
            <div>Përditësoni dekanatin</div>

            <div class="row">
              <div class="row">
                <label class="small gray" for="dekan">Dekani</label>
                <div>
                  <input list="dekan_list" name="dekan" id="dekan" class="inputText"/>

                  //The first time 
                  <datalist id="dekan_list">
                    <option value="John Doe" data-id="1" ></option>
                    <option value="John Doe2" data-id="2" ></option>
                  </datalist>

                </div>
              </div>
              <div class="col">
                <label class="small gray" for="zvDek1">Zv. Dekani</label>
                <div>
                  <input list="zvDek1_list" name="zvDek1" id="zvDek1" class="inputText" />

                  //The second time 
                  <datalist id="zvDek1_list"> 
                    <option value=" " data-id="" ></option> 
                    <option value=" " data-id="" ></option>
                  </datalist>
                </div>
              </div>

              <div class="col">
                <label class="small gray" for="zvDek2">Zv. Dekani</label>
                <div>
                  <input list="zvDek2_list" name="zvDek2" id="zvDek2" class="inputText" />

                  //The third time 
                  <datalist id="zvDek2_list"> 
                    <option value=" " data-id="" ></option> 
                    <option value=" " data-id="" ></option> 
                  </datalist>
                </div>
              </div>
            </div>

佩尔迪特·索尼·德卡纳廷
德卡尼
//第一次
Zv。德卡尼
//第二次
Zv。德卡尼
//第三次

您的第一个示例显示以下语法:

value="<%=element.emer_ped%> <%=element.mbiemer_ped%>"
value=“”
您的第二个和第三个使用的语法略有不同:

value="<%element.emer_ped%> <%element.mbiemer_ped%>"
         ^                    ^
value=“”
^                    ^

注意,
^
指向的地方缺少
=
。我个人不知道ejs语法,但这似乎是有效版本和无效版本之间的一个区别。

请显示整个模板,并指出转换为HTML时哪个部分是空的。模板本身不会删除传入的数据。另外,请在呈现模板时显示传递到模板的确切数据。如果用户第二次希望在数据列表中显示“我的选项”的值,则该值为空。当我按下输入时,它显示与第一次相同数量的选项,但没有值。我的代码在两种情况下都是一样的。你说的“第二次”是什么意思?此数据在同一模板中是否有两次出现?还是从头开始多次渲染模板?在我的第一个评论中,我要求你在你的问题中添加一些额外的信息-这些信息将帮助我们回答。我想在我渲染的ejs文件中多次使用我从数据库中获取的数据。具体来说,在我的例子中,我提出了4个查询,其中一个是问题中显示的数据。我想在同一个ejs文件中再次使用这些数据来再次显示人员列表。我将更新我的问题,以包括在我的文件中传递的数据。引用模板中的数据不会造成破坏,因此这些数据仍将在模板中用于第二次使用,除非您在某个地方做错了什么。请阅读我的第一条评论。我要求您显示更多信息—整个模板和准备数据并调用
res.render()
的代码。如果你不打算这样做,那么我将继续前进,帮助其他人,因为对于你现在的问题中的信息,我已经没有更多的事情要做了。我解决了我的问题!非常感谢你!
value="<%element.emer_ped%> <%element.mbiemer_ped%>"
         ^                    ^