0

私は3つのノードjsファイルを持っています:

  1. データベース接続プロパティを格納するための mysqlconnection.js:

    var mysql = require('mysql');
    var cjson = require('cjson');
    var yaml_config = require('node-yaml-config');
    
    // project files
    var config = yaml_config.load(__dirname + '/billingv2.yaml');
    
    
    exports.execute = function(callback){
    
        var connection = mysql.createConnection(
            {
              host     : config.host,
              user     : config.user,
              password : config.password,
              database : config.database,
            }   
        );
        connection.connect();
    
        return callback(null,connection);   
    }
    
  2. REST API 呼び出しを処理する subscriptionRestService.js:

    var express = require('express');
    var app = express();
    
    app.use(express.bodyParser());
    var fs = require('fs');
    // Project files
    var mysql = require('./mysqlRestService.js');
    // Get Resource Subscription data by Resourceuri
    app.post('/pricingdetails', function(req, res) {
    
        var workload = req.body;
        if(workload.elements && workload.elements.length > 0)
        {
            var arr = [];
            for(var index in workload.elements)
            {
                arr[index] = workload.elements[index].uri;
            }
    
            var resourceIdentifiers = arr.join(',');
        }
        console.log(resourceIdentifiers);
        mysql.getPricingDetail(function(resourceIdentifiers,callback){
    
        });
    
    });
    
  3. mysqlRestService.js で mysql クエリ/ストアド プロシージャを処理します。

    // packages
    var mysql = require('mysql');
    var cjson = require('cjson');
    var fs = require('fs');
    var yaml_config = require('node-yaml-config');
    
    // project files
    var dbconnection = require('./mysqlconnection');
    exports.getPricingDetail = function (resourceIdentifiers,callback){
        console.log('entered into mysql function');
        console.log(resourceIdentifiers);
        var pricingDetail = {};
        dbconnection.execute(function(err,response){
    
            if(err){
                throw err;
                }
            else 
                { 
    
                    var selectqueryString = "call SP_ExposePricingDetailforUI('" + resourceIdentifiers + "')";
                    response.query(selectqueryString, function(err,pricingDetail){
                    if(err) {   
                        throw err;          
                    }
                    else 
                    {
                        console.log(pricingDetail);
                        pricingDetail = pricingDetail;
    
                    }
                    });
                }
    
        });
    
        //console.log('printing pricing details');
        //console.log(pricingDetail);
    };
    

直面した問題

  1. resourceIdentifierssubscriptionRestService から mysqlRestService.jsに変数を送信できません

  2. pricingdetailmysqlRestService.js から subscriptionRestServiceの呼び出し関数に戻すことができません。

どんなガイダンスでも大歓迎です。

4

1 に答える 1

0

変数 resourceIdentifiers を subscriptionRestService から mysqlRestService.js に送信できません

さて、あなたはそれを送信しませんでした。現在、呼び出しのコールバック関数のパラメーターであり、 のパラメーターの引数ではありませんgetPricingDetails。使用する

mysql.getPricingDetail(resourceIdentifiers, function callback(result){
    // use result here
});

mysqlRestService.js から subscriptionRestService の呼び出し関数に価格詳細を返すことができません。

何をすべきpricingDetail = pricingDetail;だったのかわからない。callbackここを呼び戻す (呼び出す) 必要があります。使用する

callback(pricingDetail);
于 2013-07-29T14:50:14.927 に答える