2013-12-16 8 views
0

Typescript로 마이그레이션 할 NodeJS + ExpressJS가 있습니다. 타이프 스크립트 (formcript) 정의를 만들기 위해 노드 모듈 "Formidable"을 사용하고 있습니다. 그러나, 나는 오류로 인해 타이프 코드로 모듈 요소를 가져올 수 아니에요 : 여기NodeJS 모듈을 Typescript 코드로 가져올 수 없습니다.

; s의 모듈 정의 :

/// <reference path="../Main.d.ts" /> 

declare module "formidable" { 
    export class Formidable { 
     constructor(); 
     IncomingForm() : Form; 
    } 

    export class Form{ 
     encoding : String; 
     uploadDir : String; 
     keepExtensions : Boolean; 
     type : String; 
     parse(String, Function) : void; 
    } 

} 

여기에 모듈을 가져 파일 "Upload.ts이"입니다

import fs = require('fs'); 
import path = require('path'); 
import formidableModule = require('formidable'); 
var formidable = new formidableModule.Formidable(); 

여기

var fs = require('fs'); 
var path = require('path'); 
var formidableModule = require('formidable'); 
var formidable = new formidableModule.Formidable(); 

가 여기 타이프 스크립트 컴파일러에 의해 생성 된 "Upload.js을"의 ts 확실하지 오류

C:\Users\Me\WebstormProjects\Core\lib\Upload.js:5 
var formidable = new formidableModule.Formidable(); 
       ^
TypeError: undefined is not a function 
    at Object.<anonymous> (C:\Users\Anjan\WebstormProjects\Core\lib\Upload.js:5:18) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 
    at Object.<anonymous> (C:\Users\Anjan\WebstormProjects\Core\app.js:9:20) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 

Process finished with exit code 8 

답변

0

하지만 이것은 내가 (나는이 같은 문제가 없었다)

module.exports.formidable = { 
    method1: function(req){ 
     /// code here 
    }, 
    method2: function(param1, param2) { 
      ///code here 
    } 
} 
+0

이 TS없이 NodeJS에서 할 수있는 방법은 다음과 같습니다

은 기본적으로 당신은 내가 워드 프로세서 아마 https://github.com/felixge/node-formidable#formidableincomingformhttps://github.com/felixge/node-formidable#api

에 그 표시되지 않습니다 Formidable 클래스에 정의되지 않은 얻고있다 나와 함께. 그러나 TS로 마이그레이션 중이므로 TS에서 수행하는 방법을 파악하려고합니다. – EternallyCurious

0

내가 Formidible에 대한 정의가 잘못 생각하는 전체 클래스를 내보내는 방법이다. - 잘 작동

var form = new formidable.IncomingForm() 
관련 문제