[英]NodeJs HTTP Post call, how to use it as an API for AngularJs which uses $http
我有一个NodeJS文件,该文件调用POST并从Azure获取数据。 我想将其转换为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();
通常,如何将本文转换为API调用,可以在其中使用AngularJS进行发布。
我的路线是:
app.post('/api/user/insertUser/',userCtrl.Signup);
在angularJS中:
$http.post('/api/user/insertUser', signup_data).then(function(response){
.....
});
我将在signup_data中传递数据,并在响应中获得所需的数据。
有什么方法可以转换上述POST请求,以便可以通过AngularJS使用它。
您可以使用expressjs和body-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");
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.