我正在採取與Node.JS的第一步,並遇到了一個奇怪的問題,我不知道。我從upcoming_events.js
文件我正在導出這樣此events
對象:訪問使用mongoose創建的導出的json對象node.js
module.exports = function(passport, FacebookStrategy, config, mongoose) {
var fbEvent = new mongoose.Schema({
eventID: String,
eventName: String,
eventPic: String,
rsvp_list: Array,
category: String
})
var eventModel = mongoose.model('fbEvent', fbEvent);
eventModel.find({}, function(err, events) {
if (err) throw err;
module.exports.events = events;
})
}
,並在接收端,文件「routes.js」我能訪問數據 這樣的:
var events = require('../data/upcoming_events.js');
router.get('/upcoming_events', securePages, function(req, res, next){
console.log(events.events[0].eventName);//accessing data....
res.render('upcoming_events', {title: 'Welcome to aDating - Upcoming Events'});
})
和日誌我會得到這個樣子的:
{ _id: 55aa582edeea927016d5af1c,
eventID: '1111',
eventName: 'Breakfast Club',
eventPic: '4d669b',
category: 'Party',
__v: 0,
rsvp_list:
[ '12343242'
] }
到目前爲止一切工作正常,但現在我想這個數據傳遞到另一個文件, 'proccess_data.js'
,然後發送到routes.js
。該proccess看起來像這樣(演示無功能):
var events = require('../data/upcoming_events.js');
module.exports.user = events;
但現在,當我需要從proccess_data.js
文件中的數據,並試圖訪問它以同樣的方式:
var data= require('../data/proccess_data.js');
router.get('/upcoming_events', securePages, function(req, res, next){
console.log(data.events[0].eventName);//accessing data....
res.render('upcoming_events', {title: 'Welcome to aDating - Upcoming Events'});
})
我得到的在控制檯以下錯誤:
TypeError: Cannot read property '0' of undefined
一個細節,當我出口events
從proccess_data.js
這樣的:
module.exports = function(passport, FacebookStrategy, config, mongoose) {
var events = require('../data/upcoming_events.js');
module.exports.user = events;
}
和訪問它像這樣在這樣routes.js:
console.log(data.user);
這是打印出:
{ [Function]
events:
[ { _id: 55aa582edeea927016d5af1c,
eventID: '1111',
eventName: 'TONIGHT - Andreas Henneberg // Breakfast Club',
eventPic: '69b',
category: 'Party',
__v: 0,
rsvp_list:
[ '12343242',
'12366662' ] },
{ _id: 55aa6a751178e94823016053,
eventID: '2222', ...And so on...
任何想法,這是爲什麼嗎?
可能重複[如何從異步調用返回響應?](http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-asynchronous-call) –