html如何连接mongodb数据库,如何以HTML格式显示MongoDB集合?

本文介绍如何在Node.js应用中利用EJS模板引擎动态渲染HTML表格,展示从MongoDB数据库获取的数据。通过创建EJS模板和设置Express服务器,实现了在‘/’和‘/sliced’路由上分别展示文章列表。EJS模板允许复用,使得在多个页面上以表格形式展示数据变得简单高效。
摘要由CSDN通过智能技术生成

您的问题似乎是EJS语法,您应该在这里回顾一下:

EJS Docs

. 考虑以下测试项目结构:

.

âââ index.js

âââ package.json

âââ setup.js

âââ views

âââ index.ejs

âââ table.ejs

我用创建测试数据库

J.

所以我们有一些虚拟的帖子来显示:

const mongoose = require("mongoose");

mongoose.connect("mongodb://localhost:8081/test", {

useNewUrlParser: true

});

const Post = mongoose.model("Post", {

title:String,

body: String

});

const toMake = [

{title: "hello", body: "world"},

{title: "foo", body: "bar"},

{title: "fizz", body: "buzz"},

{title: "a", body: "b"}

];

Post.insertMany(toMake)

.then(()=>{

console.log("done");

mongoose.connection.close();

})

.catch(err => console.error(err));

我创建一个EJS模板

视图/表

要将我的文章呈现为表格:

TitleBody

{ %>

然后我创建一个EJS模板

视图/索引

使用表格模板

Posts

我还创建了一个服务器来响应

索引文件

并运行它

node index.js

:

const express = require("express");

const mongoose = require("mongoose");

mongoose.connect("mongodb://localhost:8081/test", {

useNewUrlParser: true

});

const app = express();

const Post = mongoose.model("Post", {

title: String,

body: String

});

app.set("view engine", "ejs");

app.get("/", async (req, res) => {

const posts = await Post.find({});

res.render("index", {posts});

});

app.listen(3000, () => console.log("Listening"));

当我

curl localhost:3000

我得到呈现的HTML:

Posts

TitleBody

helloworldfoobarfizzbuzzab

无论怎样,我都需要将数据输入

res.render()

函数并用渲染所需的所有数据填充渲染范围。

但是,我已经

表EJS

可重复使用的。所以假设我有另一个页面,我希望能够以表格的方式显示一些文章。

我有另一个EJS模板:

视图/配置文件.ejs

看起来是这样的:

2 Posts

我在我的应用程序中添加了另一条路径

/sliced

:

app.get("/sliced", async (req, res) => {

const posts = await Post.find({});

res.render("profile", {posts});

});

每当我卷曲

localhost:3000/sliced

因为我只填充了

include

的作用域,包含所有文章的切片:

2 Posts

TitleBody

helloworldfoobar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值