[英]Node.js object is not a function - module.exports
我有一個我為node.js app創建的模塊。 該應用程序還使用socket.io,我想在創建它時將socket.io對象傳遞給拍賣對象。
當我在Node之外執行它時,這是有效的,但在內部,我得到錯誤'對象不是函數' - 我的猜測是它與module.exports有關,但我確定它會是什么。
任何建議都很棒 - 謝謝!
auction.js
var Auction = function(socket) {
this.data = [];
this.timer = null;
this.socket = socket;
}
Auction.prototype = {
add: function(auction) {
this.data.push(auction);
}
}
module.exports.Auction = Auction;
server.js:
var Auction = require('./lib/auction');
var auctions = new Auction(socket);
錯誤:TypeError:object不是Object.CALL_NON_FUNCTION_AS_CONSTRUCTOR(native)中的函數
您正在導出具有1個屬性Auction
的對象
當您需要該模塊時,您導入了一個看起來像的對象
{
Auction: function(){...}// Auction function
}
所以要么只導出函數:
module.exports = Auction;
或在您需要模塊時參考該物業:
var Auction = require('./lib/auction').Auction;
默認情況下,module.exports是一個空對象: {}
您可以使用函數替換exports
。 這將只導出該功能。
或者,您可以導出許多函數,變量,對象,將它們分配到exports
。 這是你在你的問題做了什么:分配的function Auction
的財產Auction
的exports
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.