2016-04-08 19 views
0

Şu anda bir YAML dosyasını ayrıştıran bir Node.js uygulaması yazıyorum. Bazı durumlarda, bir değere karşılık gelen satır numarasını alabilmem gerekir. YAML person: username: jsmith password: hunter2 olsaydı Mesela ben mesaj ": Kötü parolası 3. hatta Hatası" görüntülemek isteyebilirsiniz.JavaScript'te ayrıştırılmış bir YAML dosyası için satır numaralarını nasıl kaydedebilirim?

Açıkçası, bu bir değersizleştirilmiştir örnektir, ama mesele YAML kendisi ile hiçbir sorun yok olduğunu.

Ben yamljs kullanarak ve Object.defineProperty yöntemiyle doğrudan nesnelere satır numarasını eklemek mümkün, ama passwords: - [email protected] - hunter2 olmazdım aşağıdaki YAML olsaydı yani bu, dizeleri için çalışmaz oldum "hunter2" için bir satır numarası verebilir. düşüncelerimden

bazıları: Bir { lineNumber, value } nesneye

  • Kutu tüm değerler. Her şeyde .value'u aramak zorunda kalacağım gibi, bu bana rahatsızlık verici geliyor. Satır numarasının, nesne üzerinde etkili olan aşağı akış kodlarını etkilememesini tercih ederim.
  • Mağaza onların hat numaraları ile değerlerin bir karması.
  • hattını saklamak için Dize uzatın ("Avcısı2" belgesinde ayrıca alınmaya başlanmış ise, örneğin) Ben yinelenen dizeleri arasındaki farkı söylemek mümkün olmaz bildiğim kadarıyla, çünkü bu, işe yaramaz sayı, ama hala bir ip gibi davranıyor. Bu ideal görünüyor, ama tamamen mümkün olup olmadığını bilmiyorum. Elimi denedim ve henüz hiçbir yaklaşım benim için işe yaramadı.

Ben düşünce değil başka bir yolu var mı? Bahsettiğim yaklaşımlardan herhangi biri gerçekten mümkün ve yanlış mı yapıyorum?

cevap

0

ilgilenen herkes için, ben diziler/nesneler üzerinde satır numarası depolama ve dizeleri üzerine yukarıdaki sona erdi. İdeal değil, ama diğer yollarla çözmeye çalışmanın getirdiği maliyetler, faydalarından daha ağır basıyordu. Ayrıca kullanım durumum muhtemelen daha fazla dizi/nesne görecek. https://github.com/pumlhorse/yaml.js

Edit:

Ben yamljs burada depoya çatallı ben String ekleyerek özelliklerini belirtilen ve bu benim sorunlarına çözüm olduğunu fark Başka bir soru üzerine oldu. İlkellerin tersine String nesnelerini döndürmek için yukarıdaki depoyu değiştirdim ve gerekli olan işlevselliği sağladım.

İlgili konular