簡體   English   中英

Node.js對象不是函數 - module.exports

[英]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的財產Auctionexports

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM