Javascript 如何从mongodb获取数据并使用NodeJS将其显示在表中?
我很难弄清楚如何在mongodb中检索数据并在html/ejs文件中获取数据。在html/ejs文件中有一个按钮,如果用户单击该按钮,它将显示数据库集合mongodb中的所有数据 我发现一些问题与我的问题相似,但它没有回答我的问题。我在NodeJS和mongodb还是新手,所以我对如何实现我的目标还没有真正的想法 这是我的index.jsJavascript 如何从mongodb获取数据并使用NodeJS将其显示在表中?,javascript,node.js,mongodb,ejs,Javascript,Node.js,Mongodb,Ejs,我很难弄清楚如何在mongodb中检索数据并在html/ejs文件中获取数据。在html/ejs文件中有一个按钮,如果用户单击该按钮,它将显示数据库集合mongodb中的所有数据 我发现一些问题与我的问题相似,但它没有回答我的问题。我在NodeJS和mongodb还是新手,所以我对如何实现我的目标还没有真正的想法 这是我的index.js 使用按钮创建ejs文件后,我需要显示表中的所有数据。谢谢大家! 如果您想从db中检索数据并将其发送到ejs,则可以这样做: app.get('/',(req
使用按钮创建ejs文件后,我需要显示表中的所有数据。谢谢大家! 如果您想从db中检索数据并将其发送到ejs,则可以这样做:
app.get('/',(req,res,next) =>{
//Here fetch data using mongoose query like
User.find({}, function(err, users) {
if (err) throw err;
// object of all the users
res.render('index',{users:users});
});
在ejs文件上:
<!DOCTYPE html>
<html>
<head>
<title>Welcome to my blog</title>
</head>
<body>
<h1>Users</h1>
<p><%=users %></p>
</body>
</html>
您在res.render中对象中发送的内容将在index.ejs文件中可用。现在,您可以根据需要显示数据如果您要从数据库检索数据并将其发送到ejs,则可以按如下方式执行:
app.get('/',(req,res,next) =>{
//Here fetch data using mongoose query like
User.find({}, function(err, users) {
if (err) throw err;
// object of all the users
res.render('index',{users:users});
});
在ejs文件上:
<!DOCTYPE html>
<html>
<head>
<title>Welcome to my blog</title>
</head>
<body>
<h1>Users</h1>
<p><%=users %></p>
</body>
</html>
您在res.render中发送的对象将在index.ejs文件中可用。现在,您可以根据需要显示数据,请尝试以下代码: app.js
var express = require("express"),
app = express(),
bodyparser = require("body-parser"),
mongoose = require("mongoose");
mongoose.connect("mongodb://localhost:27017/commuters", {useNewUrlParser: true});
app.use(bodyparser.urlencoded({ extended: true }));
app.set("view engine", "ejs");
var schema = new mongoose.Schema({
route : String,
origin : String,
destination : String,
estimatedTimeOfArrival : String,
date : String,
time : String
})
var detailsModel = mongoose.model("detailsModel", schema);
app.get("/", function (req, res) {
res.render("index",{ details: null })
})
app.get("/getdetails", function (req, res) {
detailsModel.find({}, function (err, allDetails) {
if (err) {
console.log(err);
} else {
res.render("index", { details: allDetails })
}
})
})
app.listen(3000, "localhost", function () {
console.log("server has started");
})
index.ejs
请尝试以下代码: app.js
var express = require("express"),
app = express(),
bodyparser = require("body-parser"),
mongoose = require("mongoose");
mongoose.connect("mongodb://localhost:27017/commuters", {useNewUrlParser: true});
app.use(bodyparser.urlencoded({ extended: true }));
app.set("view engine", "ejs");
var schema = new mongoose.Schema({
route : String,
origin : String,
destination : String,
estimatedTimeOfArrival : String,
date : String,
time : String
})
var detailsModel = mongoose.model("detailsModel", schema);
app.get("/", function (req, res) {
res.render("index",{ details: null })
})
app.get("/getdetails", function (req, res) {
detailsModel.find({}, function (err, allDetails) {
if (err) {
console.log(err);
} else {
res.render("index", { details: allDetails })
}
})
})
app.listen(3000, "localhost", function () {
console.log("server has started");
})
index.ejs
谢谢,但是我运行了代码,似乎没有从我的mongo数据库中获得任何数据。单击“获取详细信息”后,它只显示标题,即路线起点目的地预计到达日期时间。很抱歉,这是我的错误,我在模式中键入了collection,而不是collection,它不起作用。我还有一个问题,有没有办法根据时间或日期过滤输出?再次感谢!谢谢,但是我运行了代码,似乎没有从我的mongo数据库中获得任何数据。单击“获取详细信息”后,它只显示标题,即路线起点目的地预计到达日期时间。很抱歉,这是我的错误,我在模式中键入了collection,而不是collection,它不起作用。我还有一个问题,有没有办法根据时间或日期过滤输出?再次感谢!