2017-05-04 8 views
0

私はPOSTを呼び出し、Azureからデータを取得するNodeJSファイルを持っています。 AngularJS $ httpで使用できるAPIに変換したいと思います。

var http = require('http'); 
var https = require('https'); 
var querystring = require('querystring'); 
function getPred() { 
    var data = { 
     "Inputs": { 
    "input1": 
    { 
     "ColumnNames": ["Age", "Gender", "Chest Pain Type", "Resting BP", "Serum Cholestrol", "Fasting Blood Pressure", "ECG", "Max Heart Rate", "ST Depression"], 
     "Values": [ [ "20", "1", "4", "130", "322", "0", "2", "109", "0" ] ] 
    },  }, 
"GlobalParameters": { 
} 
}; 

var dataString = JSON.stringify(data); 
var options = { 
host: 'ussouthcentral.services.azureml.net', 
port: 443, 
path: '/workspaces/8671b8e183d84ca58badf842d26ccdc6/services/8cde3573ca814c89967265a80c84cbd9/execute?api-version=2.0', 
method: 'POST', 
headers: {'Content-Type':'application/json', 'Authorization':'Bearer APIKEY'} 
}; 

var reqPost = https.request(options, function (res) { 

    res.on('data', function(d) { 
    console.log("Output") 
    process.stdout.write(d); 
    }); 
}); 
reqPost.write(dataString); 
reqPost.end(); 
reqPost.on('error', function(e){ 
console.error(e); 
}); 
} 
http.createServer().listen(8050); 
console.log("Server is now running on port 8050"); 
getPred(); 

一般に、この投稿をAngularJSを使用して投稿するためのAPIコールに変換するにはどうすればよいですか。

私のルーティングは次のようになります。

angularJSで
app.post('/api/user/insertUser/',userCtrl.Signup); 

$http.post('/api/user/insertUser', signup_data).then(function(response){ 
    ..... 
}); 

私はsignup_dataにデータを渡すだろうし、それに応答して、私は私が必要とするデータを得るでしょう。

上記のPOSTリクエストを変換してAngularJSで使用できる方法はありますか。

答えて

1

expressjsbody-parserを使用して、POSTリクエストを急行ルートに変換できます。

var express = require('express'); 
var app = express(); 
var https = require('https'); 
var bodyParser = require('body-parser'); 

app.use(bodyParser.json()); 

app.post('/api/user/insertUser', function (request, response) { 


    var data = request.signup_data; 

    var dataString = JSON.stringify(data); 
    var options = { 
     host: 'ussouthcentral.services.azureml.net', 
     port: 443, 
     path: '/workspaces/8671b8e183d84ca58badf842d26ccdc6/services/8cde3573ca814c89967265a80c84cbd9/execute?api-version=2.0', 
     method: 'POST', 
     headers: {'Content-Type':'application/json', 'Authorization':'Bearer APIKEY'} 
    }; 

    var reqPost = https.request(options, function (res) { 

     var body = ''; 
     res.on('data', function(d) { 
      console.log("Output") 
      body += d; 
     }); 

     res.on('end', function() { 
      response.json(body); 
     }); 
    }); 

    reqPost.on('error', function(e){ 
     console.error(e); 
    }); 

    reqPost.write(dataString); 
    reqPost.end(); 

}) 

app.listen(8050, function() { 
    console.log("Server is now running on port 8050"); 
}) 
関連する問題