【发布时间】:2018-03-11 16:54:05
【问题描述】:
我正在尝试使用 Node.js 创建一个 REST API,它将获取 MongoDB 集合的最后 N 行。这是我当前的代码:
var express = require("express");
var app = express();
var bodyParser = require("body-parser");
var router = express.Router();
var mongodb = require("mongodb");
var MongoClient = require("mongodb").MongoClient;
var db;
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({"extended" : false}));
// Initialize connection once
MongoClient.connect("mongodb://localhost:27017/sample", function(err, database) {
if(err) return console.error(err);
db = database;
// the Mongo driver recommends starting the server here because most apps *should* fail to start if they have no DB. If yours is the exception, move the server startup elsewhere.
});
// Reuse database object in request handlers
router.get("/", function(req, res, next) {
db.collection("samplecollection").find({}, function(err, docs) {
if(err) return next(err);
docs.each(function(err, doc) {
if(doc) {
console.log(doc);
}
else {
res.end();
}
});
}).limit(10,function(e,d){});
});
app.use('/',router);
app.listen(3000);
console.log("Listening to PORT 3000");
这是在服务器控制台上成功打印出数据库的所有内容(每当客户端发出 get 请求时)。但是,我如何以一种有效的方式将这个 JSON 信息提供给进行 GET 调用的客户端(并且支持客户端可以添加仅获取数据库的最后 N 行的参数 N 的情况)。我研究了 Mongoose,这似乎很可靠,但就我而言,我已经有一个预先存在的数据库和集合,所以不确定这是否是完成这项任务的最佳途径。
如果您需要更多信息或说明,请随时告诉我!谢谢阅读!
【问题讨论】:
标签: javascript node.js mongodb rest