SORU
2 Mart 2011, ÇARŞAMBA


Yük "Vanilya" Node.js içine Javascript Kütüphaneleri

İşlevsellik Node.js bir sunucu olarak kullanmak istiyorum bazı bazı üçüncü parti Javascript kütüphaneleri var. (Özellikle ben buldum bu QuadTree bir javascript Kütüphanesi kullanmak istiyorum.) Ama bu kütüphaneler .js dosyaları ve sadece basit "Node.js kütüphaneler".

Gibi, bu kitaplıklar node.js modülleri için beklediği exports.var_name sözdizimi takip etme. Anladığım kadarıyla bu herkesin erişebileceği fonksiyonları, vb bir modül ile bitireceğiz module = require('module_name'); module = require('./path/to/file.js'); ne zaman anlamına gelir.

Benim sorum "Nasıl yüklemek keyfi bir javascript node.js bunu yapar böylece yeniden yazmak zorunda kalmadan işlevselliğini kullanmak ben böyle exports? içine dosya mı" sonra.

Node.js çok yeniyim lütfen bana nasıl çalıştığını benim anlayış bazı göze batan delik varsa söyle lütfen.

EDİTİşler daha ben şimdi node.js Bu modül yükleme düzeni kullanan bkz : araştırma aslında yükleniyor Javascript kütüphaneleri CommonJS adı verilen yeni geliştirilen bir standart bir parçasıdır. Bu module doc page for Node.js ama ben şu an o kadar özledim diyor.

Benim sorunun cevabı "kütüphane yazarları CommonJS bir arayüz yazmak için kurtulmak veya onu yapana kadar bekle kendi işinizi kendiniz." olmuyor olabilir

CEVAP
7 Mart 2011, PAZARTESİ


Burada 'reformlar konusunda son derece kararlıyız' bu durum için cevap. bu düşündüğüm şey

Bir komut dosyası quadtree.js denir.

Dizin yapısı bu tür olan 9 ** bir özel inşa etmelisin

./node_modules/quadtree/quadtree-lib/
./node_modules/quadtree/quadtree-lib/quadtree.js
./node_modules/quadtree/quadtree-lib/README
./node_modules/quadtree/quadtree-lib/some-other-crap.js
./node_modules/quadtree/index.js

./node_modules/quadtree/quadtree-lib/ dizininizdeki herşeyi 3. parti kütüphane dosyaları.

O zaman ./node_modules/quadtree/index.js dosyası sadece dosya sistemi bu kitaplığı yüklenemedi ve ihracat işleri işi düzgün yapacak.

var fs = require('fs');

// Read and eval library
filedata = fs.readFileSync('./node_modules/quadtree/quadtree-lib/quadtree.js','utf8');
eval(filedata);

/* The quadtree.js file defines a class 'QuadTree' which is all we want to export */

exports.QuadTree = QuadTree

Şimdi başka bir düğüm modülü gibi quadtree modülü kullanabilirsiniz...

var qt = require('quadtree');
qt.QuadTree();

Kolay korumak için 3. parti kütüphane kaynak kodu herhangi biri için değişmeye gerek yok, çünkü bu yöntemi sevdim. Yükseltme yapmak için gereken tüm kaynak kodlarına bak ve hala doğru nesneleri ihraç olduğundan emin olun.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MugenPowerBatteries

    MugenPowerBa

    8 EKİM 2010
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009
  • ThePhestor

    ThePhestor

    22 Mart 2011