Node.js 如何将mongodb中的特定数据段呈现到html中?

Node.js 如何将mongodb中的特定数据段呈现到html中?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,这是我的第一个项目。我正在创建一个网站,管理员有权更改主页文本。所以我将所有文本保存在一个名为“文本”的集合中,每个文档都有一个text:value。呈现主页时,我使用text.find()返回包含对象的数组,每个对象都有一个“text”值。我使用索引将它链接到我的主页。 这样地。。 text[0]。text,因此如果我有100条文本,我会一直到text[100]。text。它们是不同的文本,我需要把它们按特定的顺序排列,这样我就不能把它们放到我的html中。 我知道这太愚蠢了,所以我想找个主意

这是我的第一个项目。我正在创建一个网站,管理员有权更改主页文本。所以我将所有文本保存在一个名为“文本”的集合中,每个文档都有一个text:value。呈现主页时,我使用
text.find()
返回包含对象的数组,每个对象都有一个“text”值。我使用索引将它链接到我的主页。 这样地。。
text[0]。text
,因此如果我有100条文本,我会一直到
text[100]。text
。它们是不同的文本,我需要把它们按特定的顺序排列,这样我就不能把它们放到我的html中。 我知道这太愚蠢了,所以我想找个主意来代替这个。 --------------修改----------------->> 我尝试过对数组使用find方法,但它也很累人,所以一些更简单的方法会很好,下面是部分代码


x、 name=='main2').src%>“class=”card img“alt=“…”>
x、 id==14)。文本%>

x.id==15)。文本%>

x、 id==16)。文本%>

x.id==17)。文本%>

x、 id==18)。文本%>

x.id==19)。文本%>


好消息是for循环始终是一个不错的选择。如果您使用的是ejs或类似的渲染引擎,类似的东西应该可以工作,尽管您必须对其进行一些调整。请查看ejs渲染引擎文档,了解确切的格式,但它看起来像下面这样,并且无论列表有多长,它都会工作尽可能多地渲染它(如果你需要考虑使用分页),


文本
正文


如果您的前端可能是react.js或vue.js或类似的,则相同的程序可以工作,但格式会有所不同。

恕我冒犯,朋友,但您需要一些教程。但让我尽我所能帮助您。web应用程序中的所有内容都有一定的定义。这意味着它属于一个或另一个预定类别。当您获得js时例如,您可以根据特定数据在数据库中的定义获取一些内容,因此您可以从后端获取json数据

{ 'title':'sneaker', 'price':'200', 'quantity':'50' } 
现在假设它是一个json对象列表,您可以做的是循环使用它,并根据它们的对象键将它们分配给标记(因为它被转换为javscript对象)

<% for text in Texts.text %>
       <h2>text.title</h2>
       <div>
         <p>text.price</p>
         <p>text.quantity</p>
       </div>

text.title
价格

文本数量

这将是您从数据库中呈现数据的方式(格式可能不完全正确)。处理表单是另一回事。因此,请阅读一本书或一些教程视频来讨论它。您将更好地了解如何处理它。 对于你的代码,你是非常严格的,乍一看已经有了一个模式,使用这个模式,你的代码只需要一个简单的For循环

for(let i=0; let i>100; i++){
    if (i%2===0){
       console.log(<h2> i </h2>)
    }else{
       console.log(<p> i </p>
    }
}
for(设i=0;设i>100;i++){
如果(i%2==0){
控制台日志(i)
}否则{
console.log(i

} }

我使用纯javascript的原因是,您可以看到渲染的内部工作应该是什么样子。您可以获得数据库中的ID总数(在本例中,整数100表示的是这个总数),一个接一个地循环,生成你想要的内容。它仍然是javascript,不要让html把你甩了

我编辑了我问题的开头,我不想把它们都扔到我的html中,它们是不同容器中的不同文本,,,,,,所以每个文本记录都应该放在它的位置我已经编辑了我的回答以显示标记你可以通过一种方式来完成你所拥有的,请注意,这只是为了向你强调这个概念,为了充分理解,请参考ejs文档,但这通常是事情的运作方式。问题是,文本是从数据库中检索的,它们可以由管理员重写,所以我只能使用if语句,因为迟早它会返回f另外,除了我一页有50多条文本外,这是否意味着我必须在一页中使用+50条if语句?看看我的第二个答案,我希望它能帮助其他人,我明白了。我知道基本知识。我再次编辑了我的问题,并添加了一部分代码,以便更加清晰。那么这是否意味着如果我有50条文本,并且它们不同,没有适合它们的模式(所以我不能使用if语句来决定要呈现哪个),我必须做我在代码中所做的事情?如果你有50个文本,没有任何模式,那么你应该从一个定义良好的模式开始,或者从一个有模式的模式开始,即使该模式不是一个明显的模式,或者甚至构造得很糟糕
for(let i=0; let i>100; i++){
    if (i%2===0){
       console.log(<h2> i </h2>)
    }else{
       console.log(<p> i </p>
    }
}