节点js函数一次又一次的调用
我正在使用nodejs express框架进行我的开发。 该网页有两个button
1) 提交哪个调用以下函数:
router.get('/record_enrich_quick/:quick', function(req, res) { console.trace(); var json_struct={}; json_struct["start_time"]=req.params.quick; json_struct["end_time"]="now"; json_struct["cookie"]=Math.random().toString(); var data=JSON.stringify(json_struct); var args={ data:data, headers: { "Content-Type": "application/json" } } //var Rest = require('node-rest-client').Client; //var client=new Rest(); de_rest_client.post("http://localhost:8080/recordenrich",args,function(data,response){ console.log("Received response from data enrich start"); }); });
2) 刷新哪个调用下面的函数
router.get('/getDataEnrich/:from', function(req, res, next) { var fromValue = req.params.from; //Calls Elasticsearch and gets the data from it . });
问题:
当我点击提交一个REST呼叫去,它重复一遍又一遍。
没有办法这个调用已经从前端,即:HTML。 原因是我无法在开发人员工具的networking端find调用。
另外我有一个HTML端的debugging点,在那里“/ record_enrich_quick /:quick”的函数被调用,第二次debugging器甚至没有指向这里。 这意味着这个函数被多次调用的地方还有其他地方。
总结:
我有一个rest调用的函数被多次调用,而调用这个函数的button只被按下一次。
与nodejs事件队列有关吗? 我不确定。
我终于找出原因了
我提交的部分代码没有回应.end。下面的代码解决了我的问题.Lesson是我们不能保持请求悬挂
router.get('/record_enrich_quick/:quick', function(req, res) { console.trace(); var json_struct={}; json_struct["start_time"]=req.params.quick; json_struct["end_time"]="now"; json_struct["cookie"]=Math.random().toString(); var data=JSON.stringify(json_struct); var args={ data:data, headers: { "Content-Type": "application/json" } } //var Rest = require('node-rest-client').Client; //var client=new Rest(); de_rest_client.post("http://localhost:8080/recordenrich",args,function(data,response){ res.end("reqest ends ");//This is was what made everything work }); });