dzm*_*dzm 18 javascript node.js socket.io
我有一个我为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;
Run Code Online (Sandbox Code Playgroud)
server.js:
var Auction = require('./lib/auction');
var auctions = new Auction(socket);
Run Code Online (Sandbox Code Playgroud)
错误:TypeError:object不是Object.CALL_NON_FUNCTION_AS_CONSTRUCTOR(native)中的函数
The*_*Who 37
您正在导出具有1个属性的对象 Auction
当您需要该模块时,您导入了一个看起来像的对象
{
Auction: function(){...}// Auction function
}
Run Code Online (Sandbox Code Playgroud)
所以要么只导出函数:
module.exports = Auction;
Run Code Online (Sandbox Code Playgroud)
或在您需要模块时参考该物业:
var Auction = require('./lib/auction').Auction;
Run Code Online (Sandbox Code Playgroud)
默认情况下,module.exports是一个空对象: {}
您可以exports使用功能替换.这将只导出该功能.
或者您可以通过分配它们来导出许多函数,变量和对象exports.这是你在你的问题做了什么:分配function Auction的财产Auction的exports.
| 归档时间: |
|
| 查看次数: |
30938 次 |
| 最近记录: |