2016-03-21 37 views
0

yüklendiğinde orada bu gerçekten basit bir cevap muhtemelen ama çok yolunda karakter bu Düğüm şeyler çok yeni farklı muamele kaçan neyse ...Düğüm uygulaması davranır küresel

Ben ister bir uygulama inşa ediyorum bir dosya yolu. Bu yol boşluklar böyle atlanmış bir yol verir Terminal penceresine bir dosya bırakarak verilir: O zamanlar bir diziye bu yolu ekleyin ve JSON dosyayı yazmak için jsonfile kullanmak

Users/[username]/Desktop/test\ file.txt 

. Bu dosyada yolu şimdi kaçış kaçtı sahiptir ve şöyle görünür:

Users/[username]/Desktop/test\\ file.txt 

Şimdi JSON'dan bu yolu kapmak ve Finder bunu ortaya çıkarmak istiyorum ve kaybolmak budur. Ben -R seçeneği geçerek yolu ortaya çıkarmak için mac-open kullanıyorum ve bu node bin/my-code.js kullanarak kodumu çalıştırırken ve bu kadar çalışır, ancak npm install -g . ile sonları yükledikten sonra bu bozulur. ama şimdi (diğer iyi çalışır fonksiyonlar vardır) eserlerini yüklemek ve app çalıştırabilirsiniz ben hata alıyorum yolu ortaya çıkarmak için çalışırsanız:

{ [Error: Command failed: /bin/sh -c open -a "Finder" -R "/Users/[username]/Desktop/test\\\ file.txt" 
The file /Users/[username]/Desktop/test\\ file.txt does not exist. 
] 
    killed: false, 
    code: 1, 
    signal: null, 
    cmd: '/bin/sh -c open -a "Finder" -R "/Users/[username]/Desktop/test\\\\\\ file.txt"' } 

farklı içinde kaçar değişen miktarlarda fark etmiş Ben node bin/my-code.js kullanarak test zaman

  1. Bu neden farklı olduğunu ve küresel yüklemek ve ne zaman bu şekilde çalıştırın: yanlışlıkla yolunun işaret yani benim soru vardır?
  2. Kodumu sınamak istediğim her seferinde gerçekten yüklemek istemediğim gibi ikisinin de aynı davranmasını sağlayabileceğim bir yol var mı?
  3. Dosya yollarını saklamanın ve/veya kaçmanın daha sağlam bir yolu var mı?

Üzgünüz, bu biraz sarsılmış. Herhangi bir öneri hoş geldiniz :)

+0

Kaçmaktan kaçınabilirsiniz, sadece dosya yolunu tırnak içine alın. – loadaverage

+0

@loadaverage - Sanırım sorunum çok fazla yerde kaçıyordu. '' '' Terminal'''' sonra boşluk kaçan '' '' JSON'''' ardından '' '' mac-open'''' kaçan kaçış kaçan kaçan kaçar! Sonunda '' mac-open' '' 'denkleminden çıktı alarak sorunu çözdüm ve yol boyunca biraz öğrendim :) – popClingwrap

cevap

0

Bu yüzden, sorduğum tüm soruları tam olarak cevaplamadım ama sorunu çözdüm ve Node geliştirmesinde gerçekten değerli bir dersi düşündüğümü öğrendim.

Sorunu bulmaya çalışıyorum aslında mac-open kaynağını açıyorum ve bunu yaparken aslında ek modülü kullanmam gerektiğini fark ettim. Kaynak götürdü aranıyor yaklaşık child_process ve sonunda basit için tüm mac-açık modülünü devre dışı görevden okuma içine bakmak:

var exec = require("child_process").exec; 

exec("open " +assetsPath +" -R", function(err){ 
    if(err) 
     console.log(err); 
}); 

burada Esson onlar orada sırf 3. parti modülleri kullanmak değildir. Bu durumda, sağlamaya çalıştığı her şeye ihtiyaç duymamıştım ve ekstra karmaşıklık aslında soruna neden oldu.