我是node.js的新手并且对象有点问题。假设我有两个文件,一个名为printer.js,另一个名为database.js。 printer.js打印结果数据库返回。 printer.js看起来像这样:
var db = require("./database")
db.getStations(dbReturn);
function dbReturn(stations) {
for(var i = 0; i < stations.length; i++) {
console.log('id: ' + stations.id);
}
}
我的database.js看起来像这样:
function getStations(callback){
var listOfStations = [];
for(var index = 0; index < 10; index++) {
var station = new Station(index);
listOfStations[index] = station;
}
callback(listOfStations);
}
function Station(id){
this.id = id;
}
exports.getStations = getStations;
我只想提一下,Station类的成员数量远不止于此。但问题是我无法从printer.js中的database.js中创建的Station对象访问成员。我在弄清楚如何做到这一点时遇到了很多麻烦。我已经学会了如何通过导出Station在printer.js中创建一个新的Station对象,但我仍然无法访问我在其他地方创建的对象的成员!它只吐出10 x“id:undefined”
我被建议做类似的事情:
database.prototype.getStations = function(callback) {
//...
}
database.prototype.Station = function(id) {
//...
}
module.exports = database;
但这似乎不起作用,因为它只是告诉我数据库未定义。我在这里做错了什么?
答案 0 :(得分:2)
您未在for循环中按索引访问stations
。
在printer.js
:
console.log('id: ' + stations.id);
为:
console.log('id: ' + stations[i].id);