SORU
3 Mayıs 2011, Salı


Nasıl saklamak için Node.js dağıtım ayarları/yapılandırma dosyaları?

Birkaç Düğüm uygulamalar üzerinde çalışıyorum, ve dağıtımı ile ilgili ayarları saklamak için iyi bir model arıyordum. Bu Django dünya (nereden geldim), ortak uygulama olur olmak zorunda a settings.py dosyası içeren standart ayarlar (saat dilimi, vb), ve daha sonra bir local_settings.py dağıtım için özel ayarlar yani. memcache yuva, e-posta yöneticileri için adres ne konuşmak, ne ve benzeri.

Düğüm için benzer desenleri arıyorum. Sadece bir yapılandırma dosyası olurdu, bu yüzden henüz sıkışmış olan her şey app.js, ama bu benim için önemli bir yol var sunucuya özel yapılandırma dosyası olmayan kaynak kontrolü. Aynı uygulama iyi çılgınca farklı ayarlar ile farklı sunucular arasında dağıtılmış olabilir, ve birleştirme çakışmaları ve tüm bu ile uğraşmak zorunda benim eğlence anlayışım değil.

Yani bunun için/çerçeve aracı falan mı, yoksa herkes sadece birlikte bir şeyler hack mi kendileri?

CEVAP
3 Mayıs 2011, Salı


Benim yapılandırma ve bir paket için bir config.js kullanıyorum.benim paketler için json.

Benim config.js gibi görünüyor

var config = {};

config.twitter = {};
config.redis = {};
config.web = {};

config.default_stuff =  ['red','green','blue','apple','yellow','orange','politics'];
config.twitter.user_name = process.env.TWITTER_USER || 'username';
config.twitter.password=  process.env.TWITTER_PASSWORD || 'password';
config.redis.uri = process.env.DUOSTACK_DB_REDIS;
config.redis.host = 'hostname';
config.redis.port = 6379;
config.web.port = process.env.WEB_PORT || 9980;

module.exports = config;

O zaman benim proje benim config gibi yük:

var config = require('./config');

ve sonra config eşyalarımı erişebilirsiniz.db_host, config.db_port vs. bana da kodlanmış parametreleri kullanın veya kaynak kontrol şifreleri saklamak istemiyorum ama parametreleri çevre değişkenleri depolanan sağlar Bu.

Ben de bir paket oluşturur.json ve Ekle bağımlılıkları bir bölüm

  "dependencies": {
    "cradle": "0.5.5",
    "jade": "0.10.4",
    "redis": "0.5.11",
    "socket.io": "0.6.16",
    "twitter-node": "0.0.2",
    "express": "2.2.0"
  }

paketleri yüklemek için çalıştırın

npm install

benim yerel makine için projemi clone. Burada bilgi http://nodetuts.com/tutorials/22-freezing-and-bundling-your-dependencies-with-node-04.html#video burada: http://howtonode.org/introduction-to-npm

Bu projede uzaktan kumanda üretim sunucum için eklenmiş github saklanır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chilla Frilla™

    Chilla Frill

    7 Aralık 2006
  • Ciaran Blumenfeld

    Ciaran Blume

    20 NİSAN 2009
  • MaximumPCMag

    MaximumPCMag

    23 Temmuz 2010