在通过lua获取目录json字符串,然后作为数据源,通过Extjs生成树的过程中,发生了一个奇怪的问题,那就是获取目录json字符串然后传递给Extjs生成树的这个过程中,一开始都是很顺利的就生成了,不过再刷新页面的时候,json字符串突然收不到了,由于没有更改任何内容,两次操作的代码环境都是一样的,仅仅是刷新了页面,重新再次获取这个过程出现了问题。

  百思不解,以为是Extjs的问题,各种配置均没有效果,然后就想着是否是json字符串的问题,于是在页面内直接访问lua文件,第一次成功返回了需要的json字符串,再一刷新,果然500错误了,原来问题出现在这里。

  不过新的问题出来了,如果在控制台上运行这些代码,无论运行多少次都是成功的,不过通过服务器访问这个lua文件,就出现了这个问题。

  经过多方尝试,终于发现了问题所在。

  原来代码:

1 require "lfs"
2 3 4 。中间省略
5 6 7 ngx.say(XXXXXX)

  其实只要把第一行改为:

local lfs = require"lfs"

  就解决了!

  原因是在lua5.2的改动中,所有第三方库没有gloable的函数了,所以使用时都要赋给一个表。如lfs, local lfs = require"lfs"。

posted on 2014-12-19 00:21  linxiong  阅读(1108)  评论(0编辑  收藏  举报