2012-12-18 29 views
0

我正在測試一個小想法,讓CloudFoundry上的node.js腳本在另一個FTP站點中寫入文件。jsftp CloudFoundry上的node.js和FTP

var Ftp = require("jsftp"); 

var ftp = new Ftp({ 
    host: "ftp.somesite.com", 
    user: "username", 
    port: 21, 
    pass: "password" 
}); 

var remotePath = "/test.txt"; 

var data = 'this is a test string'; 

ftp.getPutSocket(remotePath, function(err, socket) { 
    socket.write(data, function(err) { 
     console.log('good'); 
     socket.end(); 
    }); 
}); 

然而,當我做vmc push我得到這個錯誤

Uploading my-ftp... FAILED 
Upload failed. Try again with 'vmc push'. 
Errno::ENOENT: No such file or directory - C:/Users/myUsername/AppData/Local/Temp/. 
vmc_my-ftp_files/node_modules/jsftp/test/test_c9/??.md 
For more information, see ~/.vmc/crash 

crash文件並沒有告訴我很多之一:

Errno::ENOENT: No such file or directory - C:/Users/myUsername/AppData/Local/Temp/.vmc_my-ftp_files/node_modules/jsftp/test/test_c9/??.md 

cfoundry-0.4.14/lib/cfoundry/upload_helpers.rb:146:in `size' 
cfoundry-0.4.14/lib/cfoundry/upload_helpers.rb:146:in `block in make_fingerprints' 
cfoundry-0.4.14/lib/cfoundry/upload_helpers.rb:143:in `glob' 
cfoundry-0.4.14/lib/cfoundry/upload_helpers.rb:143:in `make_fingerprints' 
cfoundry-0.4.14/lib/cfoundry/upload_helpers.rb:125:in `determine_resources' 
cfoundry-0.4.14/lib/cfoundry/upload_helpers.rb:44:in `upload' 
vmc-0.4.7/lib/vmc/cli/app/push.rb:119:in `block in upload_app' 
interact-0.5.0/lib/interact/progress.rb:98:in `with_progress' 
vmc-0.4.7/lib/vmc/cli/app/push.rb:118:in `upload_app' 
vmc-0.4.7/lib/vmc/cli/app/push.rb:100:in `setup_new_app' 
vmc-0.4.7/lib/vmc/cli/app/push.rb:82:in `push' 
mothership-0.3.5/lib/mothership/base.rb:61:in `run' 
mothership-0.3.5/lib/mothership/command.rb:68:in `block in invoke' 
manifests-vmc-plugin-0.4.19/lib/manifests-vmc-plugin/plugin.rb:113:in `call' 
manifests-vmc-plugin-0.4.19/lib/manifests-vmc-plugin/plugin.rb:113:in `block (2 levels) in <class:Manifests>' 
mothership-0.3.5/lib/mothership/callbacks.rb:74:in `with_filters' 
manifests-vmc-plugin-0.4.19/lib/manifests-vmc-plugin/plugin.rb:112:in `block in <class:Manifests>' 
mothership-0.3.5/lib/mothership/command.rb:78:in `instance_exec' 
mothership-0.3.5/lib/mothership/command.rb:78:in `block (2 levels) in invoke' 
mothership-0.3.5/lib/mothership/command.rb:82:in `instance_exec' 
mothership-0.3.5/lib/mothership/command.rb:82:in `invoke' 
mothership-0.3.5/lib/mothership/base.rb:50:in `execute' 
vmc-0.4.7/lib/vmc/cli.rb:106:in `execute' 
mothership-0.3.5/lib/mothership.rb:45:in `start' 
vmc-0.4.7/bin/vmc:11:in `<top (required)>' 
C:/Ruby193/bin/vmc:23:in `load' 
C:/Ruby193/bin/vmc:23:in `<main>' 

任何想法,我做錯了什麼?它在本地主機上正常工作。

回答

0

正確的答案是刪除node_modules「測試」文件夾/ jsftp

2

我試過這個,它似乎上傳的罰款。使用節點應用程序時,我總是小心確保我的packages.json文件中的內容與node_modules的內容匹配。可以肯定的是,完全刪除node_modules並在嘗試推送之前重新運行'npm install'。另外,由於這看起來不是一個基於http的應用程序,因此請記得通過爲框架選擇'other'並選擇'standalone'來將框架設置爲standalone。

+0

所以我刪除了node_modules/jsftp「測試」文件夾,現在的工作。任何想法是爲什麼?所以有一個額外的文件夾,它給錯誤? –

+1

節點將嘗試並在node_modules文件夾中加載_everything_,而不管packages.json指定什麼。 –

+0

我應該看哪些packages.json? node_modules中有很多。儘管我的主要應用程序文件夾中沒有一個。 –