global
'a bakmayı denedim, ancak yalnızca değişkenler içeriyor, işlevler değil. Komutumda oluşturulan tüm işlevleri nasıl listeleyebilirim?Düğüm js komut dosyasındaki tüm işlevleri nasıl listeleyebilirim?
cevap
cli: http://nodejs.org/docs/v0.3.7/api/debugger.html
gui: ayrıca düğüm-denetçisinin daha güçlü bir versiyonu olacaktır eserlerinde https://github.com/c4milo/node-webkit-agent var https://github.com/dannycoates/node-inspector
.
Düğüm ayıklamasını, bakmak istediğiniz dosyayla komut satırından çalıştırın. Sonra işlev bir adı varsa
node debug mini_file_server.js
< debugger listening on port 5858
connecting... ok
debug> scripts
26: mini_file_server.js
debug> list(1000)
1 var http = require('http'),
2 util = require('util'),
3 fs = require('fs');
4
5 server = http.createServer(function(req, res){
6 var stream = fs.createReadStream('one.html'),
7 stream2 = fs.createReadStream('two.html');
8 console.log(stream);
9 console.log(stream2);
10 stream.on('end', function(){
11 stream2.pipe(res, { end:false});
12 });
13
14 stream2.on('end', function(){
15 res.end("Thats all!");
16 });
17
18 res.writeHead(200, {'Content-Type' : 'text/plain'});
19 stream.pipe(res, { end:false});
20 stream2.pipe(res, { end:true});
21
22 }).listen(8001);
23 });
debug>
, küresel gayet kadar göstereceğiz listesi (burada bazı büyük sayı) kullanabilirsiniz:
mb-work-laptop:~ markbessey$ node
> for (var k in global) { console.log(k); }
global
process
GLOBAL
root
Buffer
setTimeout
setInterval
clearTimeout
clearInterval
console
module
require
k
> function z(a) { return a*10; }
> for (var k in global) { console.log(k); }
global
process
GLOBAL
root
Buffer
setTimeout
setInterval
clearTimeout
clearInterval
console
module
require
k
z
>
> global.z
[Function: z]
Yemin edebilirdik bunun için test ettim ve global olarak işlevlerin mevcut olmadığını, ancak senaryonun benim için de iyi çalıştığını fark ettim. – Trindaz
Üzgünüz Mark Ben bunu cevap olarak işaretledim - konsolda gayet iyi çalışıyor, ancak script için fonksiyonu a() {return 1; } için (globalde var k) console.log (k) 'a' işlevini göstermez. – Trindaz
Sağ.Anlaşıldığı gibi, etkileşimli modda, bu tanımlamalar global olarak gerçekleşir, ancak "node script.js" den bir betik çalıştırırsanız, modülde yerliler olur. Bu bilgiyi hata ayıklayıcısından almanın bir yolu kesinlikle var, ancak komut dosyasının ona erişip erişemeyeceğinden emin değilsiniz ... –
bazı AOP'yi yapmak istiyorsanız, rota AST'dir.
Kendi AOP çerçevenizi http://esprima.org gibi bir şeyle oluşturabilirsiniz.
Yoksa bu kadar karmaşık değil yönleri için mükemmel node-burrito, deneyebilirsiniz:
var burrito = require('burrito');
var src = burrito('someCall()', function (node) {
if (node.name === 'call') node.wrap('qqq(%s)');
});
qqq(somecall())
Bu ayıklayıcıya gibi daha gelişmiş yansıtan araçlar olmadan düğümünde imkansızdır üretecektir.
Bunu yapmanın tek yolu, güvenlik sorunları ve diğer şeyler nedeniyle kaldırılmış olan __parent__
kullanmak olacaktır. Mark Bessey gibi, senaryoyu çalıştırdığınızda, bu değişkenler modül kapanış değişkenleri olur. Bunları açıkça dışa aktarmadan başka bir yere erişemezsiniz.
Bu bir hata değildir, tasarım gereğidir. Sadece düğüm nasıl çalışır? Sadece fonksiyon ifade atamaları yazmak için kullanıcılardan Ancak, bütün bir-ok çalışacak: Sonra
module.exports = {
a:function(){
//same logic you had in the function declaration
}
}
, kolayca yansıtmak ve module.exports numaralandırmak ve tüm işlev adları alabilirsiniz.
- 1. düğüm js - Düğüm MySQL - Sonuç
- 2. Tüm dizinleri yinelemeli olarak nasıl listeleyebilirim?
- 3. Tüm modülleri CVS deposunda nasıl listeleyebilirim?
- 4. Bir veritabanının tüm tetikleyicilerini sqlite'de nasıl listeleyebilirim?
- 5. Bir kullanıcının aldığı TÜM hibeleri nasıl listeleyebilirim?
- 6. Düğüm JS, PHPStorm ile nasıl hata ayıklanır?
- 7. Bir .R dosyasındaki tüm işlevleri tanımlayın, bunları başka bir .R dosyasından arayın. Mümkünse nasıl?
- 8. Düğüm js Adwords Api
- 9. Düğüm JS Yapılandırması
- 10. Düğüm js ve kullanırken yeni
- 11. Düğüm JS - Yazıcıyı Kullan (Donanım)
- 12. düğüm js bir fonksiyon/ekspres js
- 13. Düğüm js ve express js arasındaki fark
- 14. Düğüm komut şimdiye
- 15. Bir metin dosyasındaki tüm farklı karakterleri listelemek için komut dosyaları
- 16. Düğüm js uygulamasından google fotoğraflarına nasıl erişirim?
- 17. Bir npm modülünün tüm sürümleri nasıl listelenir? Bir düğüm modülü [webpack], ben pencerelerde komuta altında idam tüm sürümlerini görmek için
- 18. Toplu iş komut dosyasındaki iletiler nasıl bastırılır?
- 19. FAKE komut dosyasındaki değişkenler nasıl denetlenir?
- 20. Düğüm js dosyasında Redlock hatası
- 21. İçerik komut dosyasında Flowplayer işlevleri nasıl kullanılır?
- 22. Kendi sınıfımı nasıl listeleyebilirim?
- 23. Bir bayt [] dosyasındaki tüm metinler nasıl okunur?
- 24. Düğüm özniteliklerini php simplexml dosyasındaki adıyla nasıl değiştirebilirim?
- 25. Windows toplu iş dosyasını kullanarak tüm boş dizinleri nasıl listeleyebilirim?
- 26. Windows XP'de yüklü tüm uygulamaları nasıl sıralayabilirim/listeleyebilirim?
- 27. Bir öğeye eklenen tüm olayları jquery .live() kullanarak nasıl listeleyebilirim?
- 28. Bir sınıftan oluşturulan tüm nesneleri Ruby'de nasıl listeleyebilirim?
- 29. Oracle DB'deki tüm bağlam ad alanlarını nasıl listeleyebilirim?
- 30. git: Verilen bir dosyada bulunan TÜM dosyaları nasıl listeleyebilirim?
Bunun için kullanım durumu ne olurdu? – mihai
Düğüm uygulaması için oluşturduğum özel bir AOP komut dosyası. Profil oluşturma, daraltma ve özel güvenlik politikaları gibi şeyler için kullanmak istiyorum. Dojo'yu kontrol ettim ama bazı ilk probs'ları düğüm uygulamasına yükledim, böylece özel bir senaryo yazacağımı düşündüm. O kadar da zor olmamalı. – Trindaz
Yani bunu senaryonun içinden yapmak ister misin? Bu kadar kolay olmadığından emin değilim çünkü anonim işlevlere sahip olabilirsiniz, kapakların içindeki işlevler, dinamik olarak oluşturulmuş işlevler vb. – mihai