pokemons
というコレクションを持つpokemon
というmongodbデータベースがあります。ここではMongoDBの中find()
操作を行います関数を記述するために私の試みです:Node.jsのMongoDBからJSONを返す方法は?
'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はMongoDBのデータをログに記録する方法を示す際に便利ですカーソルオブジェクトにeach()
メソッドの何らかの処理を行うことでコンソールに接続しますが、getPokemonByName
関数を使用してreturn
jsonに移動する方法はわかりません。私はgetPokemonByName
関数のルートスコープに空の配列を定義し、そのリンクに.each
メソッドの各繰り返しを表示してデータをその配列にプッシュしようとしましたが、実際にはその配列の後に起こるため、 。
私は実際にこれを楽しみながら、MongoDBとNode.jsについて学ぶために、MongooseのようなODMを使いたくないので、私のためにこの仕事のいくつかをしています。
ありがとうございました!
編集
興味があるだけ、これを読んでいる人のために、なぜこの質問は、downvotedなっていますか?それは答えが他の、類似の質問、または他の何かから集められることができるからですか?
ありがとうございます!
[非同期呼び出しから応答を返す方法]の複製がありますか?(http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-asynchronous-call) –
それをチェックしてください:http://stackoverflow.com/questions/19696240/properway-to-return-json-using-node-or-express –
これらの2つのリンクは無関係です。なぜそれがdownvotedされているかは分かりませんでした。 – Genc