【发布时间】:2016-02-01 21:30:54
【问题描述】:
我有一个名为 pokemon 的 mongodb 数据库和一个名为 pokemons 的集合。这是我尝试编写一个在 mongodb 中执行find() 操作的函数:
'use strict';
var MongoClient = require('mongodb').MongoClient;
var assert = require('assert');
// db url
var url = 'mongodb://localhost:27017/pokemon';
exports.getPokemonByName = function (name) {
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
var cursor = db.collection('pokemons').find({name: name});
// how to return json?
});
};
然后我在另一个文件中调用这个函数:
var express = require('express');
var router = express.Router();
router.get('/pokedex', function (req, res) {
res.jsonp(db.getPokemonByName('Dratini'));
})
This link 有助于显示如何通过对游标对象执行某种each() 方法将mongodb 数据记录到控制台,但我不知道如何通过getPokemonByName 函数return json .我试图在getPokemonByName 函数的根范围内定义一个空数组,并在该链接中显示.each 方法的每次迭代时将数据推送到该数组中,但我认为我仍然无法返回该数组,因为它事后发生。
顺便说一句,我真的只是为了好玩和了解 MongoDB 和 Node.js,所以我不想使用像 Mongoose 这样的 ODM 来为我做一些工作。
【问题讨论】:
-
这两个链接不相关。真的不明白为什么它被否决。
标签: javascript json node.js mongodb database