如何获取mongoDB中的数据以显示在localhost(Node.js)中

时间:2017-07-13 06:05:10

标签: node.js mongodb

我正在使用mongoDB和node.js来做列表应用。基本上,您键入要执行的操作,然后单击“添加”。我成功连接了数据库,但它没有显示数据库中的文本。它只显示localhost中的项目符号。

以下是代码:

app.get('/', function(req, res) {
  db.collection('list').find().toArray(function (err, result) {
    console.log(result);
    if (err) {return};
    console.log(err);
res.render('index.ejs', {list: result})
 });
});

app.post('/', function(req, res){
 console.log(req.body);
  db.collection('list').save(req.body, function(err, result) {
  if (err) {return};
  console.log(err);

  console.log('saved')
  res.redirect('/');
 })
})

1 个答案:

答案 0 :(得分:0)

我已经验证了您发布的代码,并对评论略有修改。 我希望这有所帮助,但似乎故障可能在正在使用的res.render方法中。请参考以下代码:

// Requires
var express = require('express');
var bodyParser = require('body-parser');
var MongoClient = require('mongodb').MongoClient;
// Instantiation
var app = express();
var mongopath = "mongodb://localhost:27017/BitX";
// Port number the REST api works on
var portnum = 7500;
// MongoDB object
var db = null;
MongoClient.connect(mongopath, function(err,ldb){
  db = ldb;
});

// Implement Body Parser
app.use(bodyParser.urlencoded({
    extended: false
}));
app.use(bodyParser.json());

// Start the REST service
var server = app.listen(portnum, function() {
    var host = server.address().address;
    var port = server.address().port;
    console.log("Content Provider Service listening at http://%s:%s", host, port);
});

// Default route
app.get('/', function(req, res) {
  // Find all items in orders and send back results to a front end
  db.collection('orders').find().toArray(function (err, result) {
    res.send(result);
    // Consider that the rendering engine may not be functioning correctly
    // SEE MORE: https://stackoverflow.com/questions/21843840/what-does-res-render-do-and-what-does-the-html-file-look-like
    //res.render('index.ejs', {list: result})
 });
});

// Accept a post on the root
app.post('/', function(req, res){
  //Save into orders
  db.collection('orders').save(req.body, function(err, result) {
    res.send(true);
    //res.redirect('/');
  });
});

有关res.render方法的其他信息,请查看:  What does "res.render" do, and what does the html file look like?   - 如果你还没有。

希望它有所帮助!