我是lua和node js的新手,我正在尝试将正在开发的移动应用程序连接到服务器。问题是它连接到服务器,但是我尝试传递的数据丢失或没有到达服务器。关于我在做什么的任何想法吗?
local function store ()
local headers = {}
headers["Content-Type"] = "application/x-www-form-urlencoded"
headers["Accept-Language"] = "en-US"
local body = "fname="..fname
local params = {}
params.headers = headers
params.body = body
print(body)
print(headers)
print(params.body)
print(params.headers)
network.request( "http://192.168.56.2:8888", "POST", networkListener, params )
end
local function networkListener( event )
if ( event.isError ) then
print( "Network error!")
else
print ( "RESPONSE: " .. event.response )
local serializedString = json.decode( event.response )
print(serializedString)
--data = json.decode(serializedString)
--print(serializedString.student[1])
end
end
`
var express = require('express');
var app = express();
var morgan = require('morgan');
var consolidate = require('consolidate');
var bodyparser = require('body-parser');
var parser = require('luaparse');
////////////////////////////////////////////////////////////////////////////////
app.listen(8888,function() {console.log('Server Running!');});
////////////////////////////////////////////////////////////////////////////////
app.set('views', __dirname + '/views');
app.engine('html', consolidate.nunjucks);
app.use(morgan('dev'));
app.use(bodyparser.urlencoded({ extended: true }));
app.use('/static', express.static(__dirname + '/static'));
////////////////////////////////////////////////////////////////////////////////
app.get('/', function(req, res) {
res.render('index.html');
});
app.post('/', function(req, res) {
var fname = req.fname;
var lname = req.body.lastname;
console.log("it went in");
console.log(req.body.fname);
console.log(req.body);
console.log(req.header);
console.log("nahuman");
res.render('index.html');
});
////////////////////////////////////////////////////////////////////////////////
您的代码还可以,只是看起来您的网络监听器networkListener()
是在store()
函数之后声明的。Lua无法访问正在执行的内容之后声明的内容,除非它被预先声明。因此,即使有错误,lua也不会找到侦听器,也不会被调用。应该在store()
函数之前声明此函数,以便可以访问它,如下所示:
local function networkListener(event)
...
end
local function store()
...
end
那样,或者您可以向前声明它,就像这样:
local networkListener = nil -- This forward declaration
local function store()
...
end
networkListener = function()
...
end
这是有关lua forward声明的更多信息。我知道是这种情况,因为您向我们提供了您的实际代码顺序的屏幕截图。尝试解决方案后,您始终可以使用调试器查看是否一切正常。我建议使用IDE zerobrane工作室。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句