Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在第一个函数-REST之后执行第二个函数_Javascript_Node.js_Rest - Fatal编程技术网

Javascript 在第一个函数-REST之后执行第二个函数

Javascript 在第一个函数-REST之后执行第二个函数,javascript,node.js,rest,Javascript,Node.js,Rest,如果第一个REST函数执行成功,则第二个函数将使用第一个函数的参数执行,返回值为:sessionid,我将值保存在变量sessionid中 这两个函数都是在同一个.js文件中调用的REST 在我尝试的情况下: 我的restApiCall.js文件: var Client = require('./lib/node-rest-client').Client; var client = new Client(); var dataLogin = { data: { "userName":"x

如果第一个
REST
函数执行成功,则第二个函数将使用第一个函数的参数执行,返回值为:
sessionid
,我将值保存在变量sessionid中

这两个函数都是在同一个
.js
文件中调用的
REST

在我尝试的情况下:

我的
restApiCall.js
文件

var Client = require('./lib/node-rest-client').Client;
var client = new Client();

var dataLogin = {
   data: { "userName":"xxxxx","password":"xxxxxxxxxx","platform":"xxxx" },
   headers: { "Content-Type": "application/json" }
};

var numberOrigin = 350;

client.registerMethod("postMethod", "xxxxxxxxxxxxxxxxxx/services/login", "POST");

client.methods.postMethod(dataLogin, function (data, response) {
   // parsed response body as js object
   // console.log(data);
   // raw response
    if(Buffer.isBuffer(data)){
      data = data.toString('utf8');
      console.log(data);
      re = /(sessionID: )([^,}]*)/g;
      match = re.exec(data);
      var sessionid = match[2]
      console.log(sessionid);
      openRequest(sessionid, numberOrigin);  // I try execute, but just the first execute if I type inside Prompt command: node restApiCall
    }
});
// this is the second function I want execute after the first sucess 
function openRequest(sessionid, numberOrigin){
  var client = new Client();
  numberOrigin+=1;
   var dataRequest = {
   data: {"sessionID":sessionid,"synchronize":false,"sourceRequest":{"numberOrigin":numberOrigin,"type":"R","description":"Test - DHC","userID":"xxxxxxxxxx","contact":{"name":"Sayuri Mizuguchi","phoneNumber":"xxxxxxxxxx","email":"xxxxxxxxxxxxxxxxxx","department":"IT Bimodal"},"contractID":"1","service":{"code":"504","name":"Deve","category":{"name":"Developers"}}} },
   headers: { "Content-Type": "application/json" }
   };
   client.post("xxxxxxxxxxxxxxxxxxxxxxxxx/services/request/create", dataRequest, function (data, response) {
   // parsed response body as js object
   // console.log(data);
   // raw response
   console.log(response);
   });
}

提前感谢。

如果问题是
新客户端()因为客户机已使用第2行定义,无需再次声明

我使用这个代码,效果很好

var Client = require('./lib/node-rest-client').Client;
var client = new Client();  //defined


var dataLogin = {
   data: { "userName":"xxxxx","password":"xxxxxxxxxx","platform":"xxxx" },
   headers: { "Content-Type": "application/json" }
};

var numberOrigin = 350;

client.registerMethod("postMethod", "xxxxxxxxxxxxxxxxxx/services/login", "POST");

client.methods.postMethod(dataLogin, function (data, response) {
   // parsed response body as js object
   // console.log(data);
   // raw response
    if(Buffer.isBuffer(data)){
      data = data.toString('utf8');
      console.log(data);
      re = /(sessionID: )([^,}]*)/g;
      match = re.exec(data);
      var sessionid = match[2]
      console.log(sessionid);
      openRequest(sessionid, numberOrigin);  // execute fine
    }
});

function openRequest(sessionid, numberOrigin){
  numberOrigin+=1;
   var dataRequest = {
   data: {"sessionID":sessionid,"synchronize":false,"sourceRequest":{"numberOrigin":numberOrigin,"type":"R","description":"Test - DHC","userID":"xxxxxxxxxx","contact":{"name":"Sayuri Mizuguchi","phoneNumber":"xxxxxxxxxx","email":"xxxxxxxxxxxxxxxxxx","department":"IT Bimodal"},"contractID":"1","service":{"code":"504","name":"Deve","category":{"name":"Developers"}}} },
   headers: { "Content-Type": "application/json" }
   };
   client.post("xxxxxxxxxxxxxxxxxxxxxxxxx/services/request/create", dataRequest, function (data, response) {
   // parsed response body as js object
   // console.log(data);
   // raw response
   console.log(data);
   });
}

如果问题是
newclient()因为客户机已使用第2行定义,无需再次声明

我使用这个代码,效果很好

var Client = require('./lib/node-rest-client').Client;
var client = new Client();  //defined


var dataLogin = {
   data: { "userName":"xxxxx","password":"xxxxxxxxxx","platform":"xxxx" },
   headers: { "Content-Type": "application/json" }
};

var numberOrigin = 350;

client.registerMethod("postMethod", "xxxxxxxxxxxxxxxxxx/services/login", "POST");

client.methods.postMethod(dataLogin, function (data, response) {
   // parsed response body as js object
   // console.log(data);
   // raw response
    if(Buffer.isBuffer(data)){
      data = data.toString('utf8');
      console.log(data);
      re = /(sessionID: )([^,}]*)/g;
      match = re.exec(data);
      var sessionid = match[2]
      console.log(sessionid);
      openRequest(sessionid, numberOrigin);  // execute fine
    }
});

function openRequest(sessionid, numberOrigin){
  numberOrigin+=1;
   var dataRequest = {
   data: {"sessionID":sessionid,"synchronize":false,"sourceRequest":{"numberOrigin":numberOrigin,"type":"R","description":"Test - DHC","userID":"xxxxxxxxxx","contact":{"name":"Sayuri Mizuguchi","phoneNumber":"xxxxxxxxxx","email":"xxxxxxxxxxxxxxxxxx","department":"IT Bimodal"},"contractID":"1","service":{"code":"504","name":"Deve","category":{"name":"Developers"}}} },
   headers: { "Content-Type": "application/json" }
   };
   client.post("xxxxxxxxxxxxxxxxxxxxxxxxx/services/request/create", dataRequest, function (data, response) {
   // parsed response body as js object
   // console.log(data);
   // raw response
   console.log(data);
   });
}