使用mongoose.find()方法在构造函数中设置javascript对象属性
Set a javascript object property in a constructor with mongoose.find() method
我试图设置设置我的Flight
对象的_docs
属性与从我的猫鼬查询返回的文档,然后根据_docs
属性定义另外两个属性,但我不能这样做,因为它异步发生。我试过回调,承诺和npm async,但我没有得到它的工作。
我对JavaScript比较陌生,在正确理解异步概念方面有一些问题。我正在使用node.js.
下面是我要做的:
var mongoose = require('mongoose');
mongoose.connect('mongodb://*******:******@localhost:27017/monitoring');
var db = monk('localhost:27017/monitoring', {username: '********',password: '*******'});
var VolDoc = require('./model/voldoc.js');
var Flight = function(flightId) {
this._flightId = flightId;
this._docs = VolDoc.find({_id: flightId}, {}, function(e, docs) {
return docs; //this._docs should be the same than docs!
//here or outside of the query i want do define a BEGIN and END property of the Flight Object like this :
//this._BEGIN = docs[0].BEGIN;
//this refers to the wrong object!
//this._END = docs[0].END;
});
//or here : this._BEGIN = this._docs[0].BEGIN;
//this._END = this._docs[0].END
};
var flight = new Flight('554b09abac8a88e0076dca51');
// console.log(flight) logs: {_flightId: '554b09abac8a88e0076dca51',
//_docs:
//and a long long mongoose object!!
}
我尝试了很多不同的方法。因此,当它没有返回mongoose对象时,我只得到对象中的flightId
,其余的是undefined
,因为程序继续运行而不等待查询完成。
我的建议是:
require('async');
var Flight = function(flightId)
{
this._flightId = flightId;
};
var flight = new Flight("qwertz");
async.series([
function(callback){
VolDoc.find({_id:self._flightId},{}, function(e, docs)
{
flight._docs = docs;
flight._BEGIN = docs[0].BEGIN;
flight._END = docs[0].END;
callback(e, 'one');
});
},
function(callback){
// do what you need flight._docs for.
console.dir(flight._docs);
callback(null, 'two');
}
]);
相关文章:
- Gulp设置javascript对象
- 能够在指向本地环境的浏览器中设置JavaScript断点
- 设置javascript函数中文本框的值
- 没有通过ajax调用设置Javascript全局变量
- 设置Javascript倒计时计时器的初始值
- 如果为null,则设置javascript变量的值
- 如何在我用作参数的函数中设置Javascript中的本地变量
- 在 shopify 上设置JavaScript弹出窗口的样式
- 在 for 循环中设置 Javascript 变量
- 设置JavaScript变量以稍后检查定义
- 在Ruby Slim文件中设置Javascript类型
- 设置JavaScript数组
- 设置javascript对象多级属性的简单方法
- 如何正确设置 JavaScript 命名空间和类
- 在代码隐藏中从DataTable设置javascript数组
- 使用Set属性在JSP:UseBean中设置javascript变量值
- 如何设置javascript中引用的文档的URL
- MVC 5视图-设置Javascript变量
- 如何设置javascript闭包的上下文
- 设置javascript文件的版本.Java EE+Tomcat