2016-08-11 42 views
0

我正在使用摩卡來測試在單獨的JavaScript文件中編寫的承諾。我試圖通過POST請求將數據發送給承諾,儘管我不確定網址應該是什麼。這裏是我到目前爲止,使用請求承諾:從Promise中獲取JSON

var rp = require('request-promise'); 
var options = { 
     method: 'POST', 
     url: '/algorithm.js', 
     body: data, 
     json: true // Automatically stringifies the body to JSON 
    }; 
rp(options) 
    .then(function(body){ 
     count++; 
     done(); 
    }); 

,我有一個無效的網址,雖然我不知道怎麼回事,張貼到一個javascript文件裏承諾的錯誤狀態。

+0

相關:http://stackoverflow.com/questions/8831984/how-do-i-test-my-express-app-with-mocha – Quentin

回答

0

我試圖將數據發送到許用POST請求

你不能做到這一點,至少沒有直接。

  • POST請求用於將數據發送到HTTP服務器。
  • Promise是一個用於處理異步操作的JavaScript對象。

這些是不同的東西。

algorithm.js需要包含可以直接調用的代碼,在這種情況下,您應該需要該代碼然後調用該函數。

var algorithm = require("algorithm"); 
if (algorithm.something()) { 
    count++; 
} 
done(); 

...或者它應該是您需要運行HTTP服務器的服務器端JavaScript。一旦你運行了HTTP服務器,你就可以使用你在問題中編寫的代碼,但是你需要提供一個絕對的 URL,因爲你需要說你正在使用HTTP和localhost等等。

var options = { 
    method: 'POST', 
    url: 'http://localhost:7878/route/to/algorithm', 
    body: data, 
    json: true // Automatically stringifies the body to JSON 
}; 
+0

謝謝。在這種情況下,您所概述的第二種情況適用於我的情況,因爲它是服務器端JavaScript。 –