我已经编写了从mongodb获取数据的查询,但我无法获得结果。 我的node.js文件如下所示
router.get('/manage-product', function(req, res){
console.log('I received get request');
var findProducts = function(db, callback) {
var cursor =db.collection('proInfo').find( ObjectId("56bc959942559b3847249b7e"));
cursor.each(function(err, doc) {
assert.equal(err, null);
if (doc != null) {
console.dir(doc);
} else {
callback();
}
});
};
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
findProducts(db, function() {
db.close();
});
});
return res.json({
findProducts,
});
});
从这个节点我不能将findProducts返回给我的控制器。在萤火虫响应部分,我只是这样{}。但是我在命令提示符下获取了值。
(function ()
{
'use strict';
angular
.module('app.manage-product')
.controller('ManageProductController', ManageProductController);
/** @ngInject */
ManageProductController.$inject = ['$http', '$scope'];
function ManageProductController($http, $scope)
{
var vm = this;
$http({
url: 'http://localhost:7200/api/manage-product',
method: 'GET',
//data: ''
}).success(function(res) {
console.log('success');
//$scope.productlist = res;
//vm.findProducts=res;
vm.findProducts=res.findProducts;
}, function(error) {
console.log(error);
alert('here');
});
console.log('i ma here');
}
})();
答案 0 :(得分:0)
return res.json({
findProducts,
});
删除它并在node.js代码中更新它
if (doc != null) { console.dir(doc); res.send(JSON.stringify(doc)); db.close(); } else { callback(); }
答案 1 :(得分:0)
使用以下代码并尝试
router.get('/manage-product', function(req, res){
console.log('I received get request');
var findProducts = function(db, callback) {
var cursor =db.collection('proInfo').find( ObjectId("56bc959942559b3847249b7e")).toArray(function(err, docs){
if(err){
return callback(new Error("Some problem"));
}else{
return callback(null,docs);
}
});
};
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
findProducts(db, function(err,docs) {
db.close();
if(err) return res.json({result:null})
else
return res.json({result: docs });
});
});
});
答案 2 :(得分:0)
在findProducts函数中尝试以下代码
if (doc != null) {
console.dir(doc);
return doc;
}
你的最终回报应该如下
return res.json(findProducts);