2013-10-15 56 views
24

我對Node.js很陌生。我正在試驗如何使用NodeJS調用服務。如果能指出下面的代碼的NodeJS相當於:使用nodejs調用Web服務

$.ajax({ 
    type: "POST", 
    url: "/WebServiceUtility.aspx/CustomOrderService", 
    data: "{'id': '2'}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (message) { 
    ShowPopup(message); 
    } 
}); 

任何有用的鏈接將不勝感激。

回答

24

與該代碼等效的Node.js可以使用jQuery服務器端,使用其他模塊或使用本地HTTP/HTTPS模塊。這是POST請求的完成方式:

var http = require('http'); 
var data = JSON.stringify({ 
    'id': '2' 
}); 

var options = { 
    host: 'host.com', 
    port: '80', 
    path: '/WebServiceUtility.aspx/CustomOrderService', 
    method: 'POST', 
    headers: { 
    'Content-Type': 'application/json; charset=utf-8', 
    'Content-Length': data.length 
    } 
}; 

var req = http.request(options, function(res) { 
    var msg = ''; 

    res.setEncoding('utf8'); 
    res.on('data', function(chunk) { 
    msg += chunk; 
    }); 
    res.on('end', function() { 
    console.log(JSON.parse(msg)); 
    }); 
}); 

req.write(data); 
req.end(); 

此示例創建數據負載,即JSON。然後它設置HTTP post選項,例如主機,端口,路徑,標頭等。然後設置請求本身,我們收集解析響應。然後我們將POST數據寫入請求本身,並結束請求。

12

目前最簡單的方法是使用Request module。在那裏看到大量的例子,展示如何做你想做的事情。

如果您想使用原始節點.js,您需要使用httphttps內置模塊,但是您必須自己處理大量編碼和流式傳輸細節。此外,請務必特別注意文檔的客戶端部分,而不是服務器。

0
//--------- Tracking request service     
factory.trackRequest = function (payload) { 
    return $http({ 
     method: 'POST', 
     **url: 'https://uat-userauthentication.bdt.kpit.com/'+ 
'employee/trackRequestStatus'**, 
     data: payload 
    }); 
}; 

return factory; 
i call node js service in angular by UI routing and used trackRequest 
function in controller