【问题标题】:NodeJs HTTP Post call, how to use it as an API for AngularJs which uses $httpNodeJs HTTP Post 调用,如何将其用作使用 $http 的 AngularJs 的 API
【发布时间】:2017-10-03 06:53:54
【问题描述】:

我有一个调用 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();

一般来说,我如何将这篇文章转换为 API 调用,以便我可以使用 AngularJS 来发布它。

我的路线是:

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

在 angularJS 中:

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

我会在 signup_data 中传递数据,在响应中,我会得到我需要的数据。

有什么方法可以转换上面的 POST 请求,以便通过 AngularJS 使用它。

【问题讨论】:

    标签: javascript angularjs node.js http azure


    【解决方案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");
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 2012-10-29
      • 2015-02-16
      • 1970-01-01
      相关资源
      最近更新 更多