pokemons
adlı bir koleksiyona sahip pokemon
adlı bir mongodb veritabanına sahibim.JSON MongoDB'den Node.js'ye nasıl dönülür?
var express = require('express');
var router = express.Router();
router.get('/pokedex', function (req, res) {
res.jsonp(db.getPokemonByName('Dratini'));
})
This link mongodb verilerini günlüğe nasıl göstermek açısından yararlıdır:
'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?
});
};
Sonra başka dosyada bu işlevi çağırır: Burada MongoDB bir find()
operasyonu yapacak bir işlev yazmak için benim girişimi imleç nesnesinde bir çeşit each()
yöntemini yaparak konsola ancak getPokemonByName
işlevini kullanarak return
json'u bilmiyorum. getPokemonByName
işlevinin kök kapsamı üzerinde boş bir dizi tanımlamaya çalıştım ve bu dizideki .each
yönteminin her yinelemesiyle bu diziye veriyi itmeye çalıştım, ancak sanırım bu diziyi hala döndüremiyorum çünkü bu olaydan sonra olur .
BTW, Ben sadece MongoDB ve Node.js hakkında bilgi edinmek ve bunu öğrenmek için yapıyorum, bu yüzden bu işi benim için yapmak için kullanmak veya Mongoose gibi bir ODM kullanmak istemiyorum.
Yardımlarınız için teşekkürler!
Düzenleme
Sadece merak, bu okuyor herkes için, neden bu soru downvoted oluyor? Bunun nedeni, cevabın diğer, benzer sorulardan veya başka bir şeyden kaynaklanabileceğinden mi?
Teşekkürler!
Olası yinelenen [Yanıtı eşzamansız bir çağrıdan nasıl geri döndürürüm?] (Http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-asynchronous-call) –
kontrol edin: http://stackoverflow.com/questions/19696240/proper-way-to-return-json-using-node-or-express –
Bu iki bağlantı birbiriyle ilgisiz. Gerçekten neden düşürüldüğünü anlamadım. – Genc