首页 > 解决方案 > 如何从服务器上的集合中获取多条信息?

问题描述

这是我的一些代码

server.get("/get", getCallback);

function getCallback(req,res) {
    collection.find({}).next(findCallback);
    function findCallback(err,foundRecord) {
        if (err == null) {
            console.log('FOUND: ' + foundRecord);
            return res.status(200).send(foundRecord);
        }
        else
            throw err;
    }

}

它让我回到{"readyState":1}控制台。

无论我尝试什么,它都会给我不同类型的错误。我没有将数据保存到集合中的问题,但是一旦我将其取出,就没有任何效果。

标签: javascriptarraysnode.jsmongodbexpress

解决方案


使用路线采用express以下get形式:

server.get('/', function (req, res) {
    res.send('your response document...')
})

您想在浏览器中显示一组 MongoDB 集合文档(快速服务器正在侦听端口 3000):http://localhost:3000/get

// Server
const express = require('express');
const server = express();
const port = 3000;

server.listen(port, () => console.log('App listening on port ' + port));

// MongoDB client
const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
const url = 'mongodb://localhost:27017';
const client = new MongoClient(url, { useNewUrlParser: true, useUnifiedTopology: true } );

// Your get request
server.get('/get', function (req, res) {
    client.connect(function(err) {
        assert.equal(null, err)
        console.log('Connected to MongoDB server on port 27017')
        const db = client.db('test')
        const collection = db.collection('collectionName')
        collection.find({}).toArray(function(err, docs) {
            assert.equal(err, null)
            console.log('Found the following documents:')
            console.log(docs)
            res.send(docs)
            client.close()
        } )
    } )               
} );

推荐阅读