node.js - 将数据从 mongodb 显示到网页
问题描述
我是 nodejs 的新手,想使用 express 和 nodejs 连接 mongo 数据库。我希望我的数据从数据库显示到网页。
///// 模型架构///////
import mongoose from 'mongoose';
const Schema=mongoose.Schema;
let Data=new Schema({
learningEvents:{
type:String
},
learningActivities:{
type:Array
},
indicators:{
type:Array
}
});
export default mongoose.model('Data', Data);
///////////节点js的完整代码///////////////
import express from 'express';
import cors from 'cors';
import bodyParser from 'body-parser';
import Data from './models/data';
import mongoose from 'mongoose';
import data from './models/data';
const app=express();
const router=express.Router();
app.use(cors());
app.use(bodyParser.json());
mongoose.connect('mongodb://localhost:27017/data');
const connection=mongoose.connection;
connection.once('open',()=>{
console.log("Mongodb connected successfully");
});
router.route('/').get((req,res)=>{
res.send('Hello');
});
router.route('/data').get((req,res)=>{
Data.find((err,Data)=>{
if(err)
console.log(err);
else
res.json(Data);
});
});
app.use('/',router);
app.listen(4000,()=>console.log('Express server is running on port 4000'));
解决方案
要将动态数据显示到网页,您需要使用 ejs 车把等模板引擎。您不能对 html 执行相同的操作:
blog.find({}, function(err, blogs){
if(err){
console.log("An Error Occured");
console.log(err);
}
else{
res.render("index",{blogs: blogs});
}
});
其中 index 是一个 ejs 文件,我们将所有博客数据传递给它。可以在 ejs 模板中呈现,例如
<% blogs.forEach(function(blog){ %>
<div class = "ui top attached segment">
<div class = "ui huge header"><%= blog.title %></div>
<div>
<div class = "item">
<img class = "ui centered image"src = "<%= blog.image %>"></img>
</div>
<div class = "description">
<p><%- blog.body.substring(0, 400) %></p>
</div>
<a href = "/blogs/<%= blog._id %>">Read More</a>
<br>
<div class = "item">
<span><%= blog.created.toDateString() %></span>
</div>
</div>
<hr>
</div>
<% }); %>
链接到 ejs文档
推荐阅读
- java - Google Drive/Docs 集成 - 多租户
- plugins - 使用 Gmail 和 Docusign 解决白名单错误
- google-cloud-platform - 如何使用 NodeJS (NestJS) 将可恢复上传到 Google Cloud Storage (GCS)?
- javascript - Javascript - 按下按钮时的新下拉菜单,根据第一个值创建第二个下拉列表
- ssh - Gitlab-CI:连接拒绝 ssh 服务
- php - 如何在表格中使用多个行跨度?
- amazon-web-services - 使用 DynamicFrame 为 Glue 代码编写单元测试
- reactjs - 使用 react coreui 悬停到下拉列表
- python - 在数据框内的 Numpy 矩阵中选择正确的值
- amazon-web-services - 如何将流量路由到子域?