2017-06-26 59 views
0

我的io未定义,可能的原因是什么?io未在nodejs中定义

arduino.js

var debug = require('debug')('arduino'); 
var five = require('johnny-five'); 
var socket = io(); 

index.js

var debug = require('debug')('server'); 
var express = require('express'); 
var http = require('http'); 
var socketIo = require('socket.io'); 
var app = express(); 
var httpServer = http.createServer(app); 
var io = socketIo(httpServer); 

可能是什么问题?

+1

arduino.js和index.js之间的关系是什么? – shaochuancs

回答

3

ioindex.js模块中的局部变量。

arduino.js是一个不同的模块。

它似乎没有使用index.js,也没有index.js似乎使用它。即使是这样,io是一个局部变量,它不会被导出,因此在定义的模块外部不可用。

+0

我该如何定义io(),使它在模块和事件中都是相同的呢? – juniperWhite

+0

对Socket.io更熟悉的人可能有更好的答案,但是如果你想在模块之间传递'io'变量你可以这样做:在'index.js':'exports.io = io;',然后在'arduino.js'中:'const io = require('index')。io;'。 –