繁体   English   中英

NodeJs HTTP Post调用,如何将其用作使用$ http的AngularJs的API

[英]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使用它。

您可以使用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");
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM