NodeJS

2017-06-19 6 views
-1

logic.tsNodeJS

import * as ModelA from "./ModelA"; 
import * as ModelB from "./ModelB"; 


export function ProcessPurchases(purchases: ModelA.Purchase[], useInfo: boolean = false): ModelA.Purchase[] { 
    ... 
    return purchases; 

}; 

export function findSavings(Products: ModelA.Purchase[], OtherProducts: ModelA.Purchase[]): ModelA.Savings{ 
     .... 
     return savings; 
}; 

server.ts

import * as ModelA from "./ModelA"; 
import * as ModelB from "./ModelB"; 
import * as Algorithms from "./logic"; 


import * as _ from "lodash"; 


var tp = require('tedious-promises'); 
var dbConfig = { 
    ... 
}; 

var TYPES = require('tedious').TYPES; 
tp.setConnectionConfig(dbConfig); // global scope 
tp.setPromiseLibrary('es6'); 

const express = require('express') 
const bodyParser = require('body-parser') 
var request = require('request'); 

const app = express(); 
app.use(bodyParser.json()); 

app.listen(3000, function (err) { 
    if (err) { 
    throw err 
    } 
    console.log('Server started on port 3000') 
}) 


interface IKeyValue { [key: string]: any }; 

namespace ProcessLogic{ 

    function PurchaseSHR(Group: number[], Manufacturer: number, Category: number, useInfo= false): ModelA.Savings{ 
    ... 
    if (useInfo) { 
     var result= Algorithms.ProcessPurchases(myActualPurchases); //Algorithms.ProcessPurchases is not a function 
     ... 
     return result; 
    } 
    else { 
     ... 
     } 
    } 


} 

}

ない、Algorithms.ProcessPurchasesが関数でないことを示すエラーをスロー "class.functionは関数ではありません"実行時にのみエラーをビルドします。すべてのファイルは同じディレクトリにあります。私が試してみました
もの:

名前空間の下に「アルゴリズム」を論理機能をラップし、そのようにそれらをインポートします。

import {Algorithms} from "./logic" 

も経由で参照しようとしました:/// <reference path="logic.ts" />

+0

あなたはすでに 'export function functionA(){...}'を試しましたか? –

+1

MCVEを提供してください。 –

+0

@SayanPalはい私は、それは私が現在持っている方法です。 – Gio

答えて

0

私は問題を解決新しい.tsファイルを作成し、その中のすべてのコードを書き換えます。奇妙なことにすべてがうまくいっているようです。