Javascript 如何从mongodb获取数据并使用NodeJS将其显示在表中?

Javascript 如何从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

我很难弄清楚如何在mongodb中检索数据并在html/ejs文件中获取数据。在html/ejs文件中有一个按钮,如果用户单击该按钮,它将显示数据库集合mongodb中的所有数据

我发现一些问题与我的问题相似,但它没有回答我的问题。我在NodeJS和mongodb还是新手,所以我对如何实现我的目标还没有真正的想法

这是我的index.js


使用按钮创建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,它不起作用。我还有一个问题,有没有办法根据时间或日期过滤输出?再次感谢!