2015-08-26 33 views
0

所以我使用流星包meteorhacks:npm爲了在我的流星代碼中使用npm包。所以我有一個模板:Meteor.js和npm

Template.upload.events({ 
    'submit form': function(event){ 
     var file1 = document.getElementById("file1").files; 

     var file2 = $('[name=file1]').val(); 
     //console.log(file1[0].type); 

     var reader = new FileReader(); 
     reader.onload = function(event) { 
      var contents = event.target.result; 
      Meteor.call("saveFileinFolder",contents); 
      //console.log(contents); 

     }; 

這是流星方法我打電話:

Meteor.methods({ 
    saveFileinFolder: function (content){ 
     var nodeFS = Meteor.npmRequire('node-fs'); 
     var fs = new nodeFS({version:'0.1.7'}); 
     console.log(content); 
    } 
}); 

我試圖使用節點包節點-FS爲了保存文件到一個文件夾,但我不斷收到錯誤:

I20150825-18:37:51.645(-4)? Exception while invoking method 'saveFileinFolder' TypeError: object is not a function 
I20150825-18:37:51.646(-4)?  at [object Object].Meteor.methods.saveFileinFolder (app/server/home.js:4:15) 
I20150825-18:37:51.646(-4)?  at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1617:1) 
I20150825-18:37:51.646(-4)?  at packages/ddp/livedata_server.js:648:1 
I20150825-18:37:51.646(-4)?  at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1) 
I20150825-18:37:51.646(-4)?  at packages/ddp/livedata_server.js:647:1 
I20150825-18:37:51.646(-4)?  at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1) 
I20150825-18:37:51.646(-4)?  at [object Object]._.extend.protocol_handlers.method (packages/ddp/livedata_server.js:646:1) 
I20150825-18:37:51.646(-4)?  at packages/ddp/livedata_server.js:546:1 

回答

0

你誤解了使用meteorhacks的方式:npm。你需要把你想要的版本號到名爲packages.json文件:

{「節點-FS」:「0.1.7」}

然後重新啓動流星,它會安裝節點包您滿意。然後在您的代碼中,按照慣例require繼續,只需使用Meteor.npmRequire。您將獲得與節點中的require相同的對象。

+0

我有一個package.json文件,其中指定了node-fs。此外,Meteor.require已棄用。我確實嘗試了你所建議的一切,但仍然沒有運氣 –

+0

可以用'new nodeFS({version:'0.1.7'})更新你的問題;'解決了錯誤?該行肯定會引發錯誤。 –