起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2407|回复: 6

[结贴] Wex5 3.5+Baas.php部署错误'userdata' of undefined

  [复制链接]

31

主题

138

帖子

584

积分

高级会员

Rank: 4

积分
584
QQ
发表于 2016-9-9 08:01:51 | 显示全部楼层 |阅读模式
Wex5 3.5+Baas.php部署错误Cannot read property 'userdata' of undefined
2016/9/9
【说明】此前参考了论坛中不少有关错误Cannot read property 'userdata' of undefined的解析,都没有找到对应解决思路,特来请教官方高人。

参考文章:
详细实现过程描述如下。
一、           创建UI2应用
1.        在UI2目录下【新建应用】,命名为nobackend,并创建唯一的页面文件index.w。
2.        在model控件上分别添加子控件data和baasData。注:之所以添加data控件是为了与baasData进行对比。
3.        在控件data中输入数据,并在index.w中添加dataTable控件,与控件data绑定到一起。
【提示】在只使用前端data数据情况下,把Native下编译生成的UI资源(www目录下)上传到远方服务器,测试正常。
二、           设置Studio配置并创建数据库
1.        【窗口】-【首选项】-【Studio配置】-【baas】-选择【baas.php】后端。
2.        创建自己的远程数据源-MySQL数据库remoteDB,并通过导入.sql方式(文章http://docs.wex5.com/ali-web-php/最后提供的)把有关数据导入到数据库。
2.打开Eclipse设置界面,创建MySQL数据库连接,测试正常。
三、           创建后端Baas.php服务
baas.php文件夹打开文件db.config.m,并勾选与上面数据源的连接。

baas.php文件夹下创建文件夹ty,在其下创建服务zxzTakeout
创建需要的动作,如下:

baas.php文件夹上击右键进行后端‘模型编译’,成功。


四、           Native文件夹下创建本地APP
新建本地App,命名为nobackend。使用模式1创建,只想编译使用的UI资源,并不创建本地Android Appios APP



五、           nobackend文件夹上‘编译使用到的UI资源’

编译后生成UI资源对应的文件夹www,如上图所示。
六、           启动FTP工具上传UI资源
根据官方要求(我使用的是‘西部数据’的虚拟空间),网站文件应放到wwwroot目录下。
【注】此前,已经把数据成功上传到远方MYSQL数据库。
于是,我把上面www文件夹下的nobackend文件夹下的所有内容(三个文件、一个目录)上传到wwwroot目录下。
七、           使用FTP工具上传后端资源
根据开始时的引文提示,我在wwwroot目录下创建子目录baas,然后把本地系统baas.php下有关文件上传到远方baas子目录下。
八、           修改.htaccess文件RewriteBase RewriteRule
修改后.htaccess内容如下:
RewriteEngine on
RewriteBase /baas
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?$1 [QSA,PT,L]
九、           启动浏览器测试
结果如下:

即说明,与后端无关的dataTable控件中内容显示正常,但是另一个关联到PHP后端baasDatadataTable控件不正常显示。当然,还出现‘经典’的'userdata' of undefined提示。


6

主题

22

帖子

116

积分

初级会员

Rank: 2

积分
116
QQ
发表于 2016-9-9 16:50:20 | 显示全部楼层
本帖最后由 niutoux 于 2016-9-9 16:52 编辑

你的案例我刚才在 Chrome上F12调试下了.发现是queryTakeout_food 这动作报错:
Parse error: syntax error, unexpected '[' in /home/googleman2016ugoo6o8golqehmpa0ni2c0x1r6/wwwroot/baas/ActionContext.class.php on line 184


然后我去看了Wex5自带的 ActionContext.class.php 发现184行是:
  1. self::$ConnectionPool[$datasource] = $this->CreatePDO(self::ConnectionConfig()[$datasource]);
复制代码

然后去网上查了下,self::ConnectionConfig()[$datasource]这个写法貌似PHP5.4以下都不支持.会提示 Parse error: syntax error

你改成试试:
  1. $temp = self::ConnectionConfig();
  2. self::$ConnectionPool[$datasource] = $this->CreatePDO($temp[$datasource]);
复制代码



回复 支持 2 反对 0

使用道具 举报

6

主题

22

帖子

116

积分

初级会员

Rank: 2

积分
116
QQ
发表于 2016-9-9 13:27:02 | 显示全部楼层
我用阿里云的弹性web空间也是一样的情况,就用官方提供的外卖案例,修改db.config.m的配置,和 justep/takeout.service.m 里面的数据库配置.再模型编译. 按照http://docs.wex5.com/ali-web-php/部署说明一步一步做.依然是Cannot read property 'userdata' of undefined.  Wex5 3.5 和  Wex5 3.6pre 都反复试过, 本地运行完全没有问题,但是访问服务器就不行.
回复 支持 反对

使用道具 举报

31

主题

138

帖子

584

积分

高级会员

Rank: 4

积分
584
QQ
 楼主| 发表于 2016-9-9 14:18:39 | 显示全部楼层
在QQ群中有一位朋友提到是AJAX访问带来的跨域访问的问题,多年前我深入研究过ASP.NET AJAX,这让我回想起一些什么。朋友,让我们一同讨论和解决这个非常典型的问题吧。官方在多处此问题有关帖子中仅仅是若隐若现地提示了一点,并没有彻底回答这个问题。

经过一段时间的学习和分析,我预测到WEX5就很有发展潜力的一个框架。只可惜他们所说的多服务端支持实例有限。依我看,目前他们提供的成熟案例主要是针对JAVA后端,至于PHP和.NET,甚至NODE.JS等只是沾了一点皮毛。只能靠我们自己挖掘了。
回复 支持 反对

使用道具 举报

31

主题

138

帖子

584

积分

高级会员

Rank: 4

积分
584
QQ
 楼主| 发表于 2016-9-9 20:00:20 | 显示全部楼层
非常感谢!
回复

使用道具 举报

31

主题

138

帖子

584

积分

高级会员

Rank: 4

积分
584
QQ
 楼主| 发表于 2016-9-9 21:17:02 | 显示全部楼层
成功了,niutoux朋友!非常感谢您的深度提示。事实上,上午在QQ群中有位朋友提醒我很可能与有关AJAX跨域调用有关。我根据您说的作了两个动作。第一,是把那个.php一行内容修改成你说的两行。然后,再运行,还是同样提示。于是,我转到我的网站管理处,发现我当时还没有确定php版本,即使用了默认的。我把它修改了成php 5.5。经过这两个动作,再运行测试(zhuxianzhong.com),成功显示出后端内容。请看截图吧:


也就是说,下面那个datatable控件中显示的正是来自后端baasData中的数据!

补充:另外,那位QQ群中好朋友也提醒到我先在URL中直接调用服务看看如何?上午我调用时也显示出与你提到的相同的错误,但是,我没有沿这个错误跟踪下去。想转而根据论坛上一个提示想使用原始AJAX实现跨域调用看看。 还是您更细心!这说明,WEX 3.5(我还没有细致分析源码)在BAAS.PHP解决方案上已经自动解决了跨域的问题。后面,我观察到WEX 3.5中对应PHP版本为5.4.45.于是,我在网站管理处选择了相近的5.5版本,如下图:
PHP.INI有关.jpg


再次表示感谢您!

同时,请版主同志结帖!
回复 支持 反对

使用道具 举报

27

主题

98

帖子

448

积分

中级会员

Rank: 3Rank: 3

积分
448
QQ
发表于 2016-9-21 22:56:56 | 显示全部楼层
关键是justep.Baas.BASE_URL修改成远程服务器打包成APP,可以使用吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-9-28 21:24 , Processed in 0.093304 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表