我已定义了一个函数,并希望使用node包装所有内容。这是功能:
var makeReq = require('./makeReq.js');
var api = "sampleApi";
function videosDetails(videos) {
var n = videos.length;
var ids;
for (var i = 0; i < n; i++) {
var id = videos[i];
ids += id.toString() + ',' ;
};
var url = api.concat(ids);
var req = makeReq.makeReq(url);
for (var i = 0; i < n; i++) {
videos[i].details = req.items[i].contentDetails;
videos[i].details = req.items[i].statistics;
};
return videos;
};
module.exports = {
videosDetails: videosDetails()
}
在Chrome控制台上编译时出现错误:
Uncaught TypeError: Cannot read property 'length' of undefined
at videosDetails (app.bundle.js:197)
at Object.<anonymous> (app.bundle.js:217)
at __webpack_require__ (app.bundle.js:20)
当它是函数参数时,不明白为什么它不被识别。提前感谢您的时间。
答案 0 :(得分:0)
你在{}没有参数的情况下调用videosDetails()
:
module.exports = {
videosDetails: videosDetails()
}
导出videosDetails
的返回值而不是函数本身。正如您在没有参数的情况下调用它一样,videos
将是未定义的。
您可能想要导出该功能:
module.exports = {
videosDetails: videosDetails
}