项目构建成功,但运行失败~请问如何处理?

我做了一个小游戏,用网页运行,构建时没有报错,但运行失败。

提示:Uncaught ReferenceError: io is not defined

个人觉得你这样的描述不够详细哦,如果不嫌弃,方便的话可以把项目传上了我帮你看看(当然我也不一定能看懂:joy:

if(cc.sys.inNative){
window.io = SocketIO;
}else{
require(‘socket.io’);
}

    this.socket = io('http://192.168.1.170:3000');

现在找到问题所在,就是下面那一句的问题。
如果没有“ this.socket = io(‘http://192.168.1.170:3000’);”这一句,运行是可以构建并运行的,但加上军一句就会出错,是写法有问题吗?还是说构建之后找不到对应的服务器?

你的错误提示是 io没有定义,所以我猜你该这样写this.socket = window.io(‘http://192.168.1.170:3000’);,你试试看

1赞

还有你这里是不是写错了?native平台下有window这个对象吗?还是说cc.sys.inNative代表的是非native平台?

1赞

代码的确是执行了下面的require(‘socket.io’);这一句。

你给的代码也是不行~随便一提~我这个是web项目 ~不是APP的

我打印过console.log(require(‘socket.io’));这一句,是没报错的,就是连不上服务器

关键是io这个对象你定义了吗?赋值了吗?还是说io是预定义对象?因为你的错误提示就是io没有定义:joy:

从你给的代码里我没有看到哪里定义了io啊,如果io代表的是socket.io的话,应该需要这样吧 : var io = require(“socket.io”);

1赞

可以了~太感谢你了~这是我看那个教程学着写的~没想到教程也有错。。。。。。。

:joy:希望你能把你说的教程的链接和截图贴上来,好让官方大神修改,不然以后又要误导别人,以前我就这样被坑过

1赞

http://forum.cocos.com/t/cocoscreator-socketio-mysql/35548

就是这个了~

额,这个不是官方大神的教程,是民间大神的

但是如果我没有搞错的话,教程里的运行环境是native,所以教程并没有问题,不会出错,出错是在你自己的代码

你这里第一句话你看错了,正确的应该是if(cc.sys.isNative),这样在native里运行的时候就会执行到if里(而不是else里),if里添加了全局对象io,所以下面用到io的时候不会报错

你这里的问题第一个是在web下运行,会运行到判断的else里,require(socket.io)你有没有保存,io对象也没有定义,所以io找不到,但是就算是native下也有问题,因为你语句写错了:joy:

1赞

好吧~原来是这样~感谢你的帮助!!!

不客气:grin:

1赞