看到Node.js这个名字,初学者可能会误以为这是一个Javascript应用,事实上,Node.js采用C++语言编写而成,是一个Javascript的运行环境。为什么采用C++语言呢?据Node.js创始人Ryan Dahl回忆,他最初希望采用Ruby来写Node.js,但是后来发现Ruby虚拟机的性能不能满足他的要求,后来他尝试采用V8引擎,所以选择了C++语言。既然不是Javascript应用,为何叫.js呢?因为Node.js是一个Javascript的运行环境。Node.js是一个后端的Javascript运行环境(支持的系统包括Linux、Windows和Mac等),这意味着你可以编写系统级或者服务器端的Javascript代码,交给Node.js来解释执行,Node.js采用了Google Chrome浏览器的V8引擎,性能很好,同时还提供了很多系统级的API,如文件操作、网络编程等。浏览器端的Javascript代码在运行时会受到各种安全性的限制,对客户系统的操作有限。相比之下,Node.js则是一个全面的后台运行时,为Javascript提供了其他语言能够实现的许多功能。
EventEmitter.once()
by ~27%. (Brian White) #10445d1843ec3a7
] - async_wrap: clear destroy_ids vector (Trevor Norris) #104006a4e6e9a42
] - benchmark: allow benchmarks to specify flags (Joyee Cheung) #104480b2bc5e27b
] - benchmark: add benchmark for WHATWG URL properties (Joyee Cheung) #1040810b3297e8f
] - benchmark: use commas in non-csv rate output (Brian White) #103606d15e7b528
] - benchmark: refactor buffer benchmarks (Troy Connor) #10175797495a84a
] - buffer: improve allocation performance (Brian White) #10443ad5ae922ce
] - build: add /opt/freeware/... to AIX library path (Stewart X Addison) #10128cff57be2b6
] - build: add (not) cross-compiled configure flags (Jesús Leganés-Combarro 'piranna) #1028780e798e324
] - crypto: use CHECK_NE instead of ABORT or abort (Sam Roberts) #1041392eacdb5c6
] - (SEMVER-MINOR) deps: upgrade npm to 4.0.5 (Kat Marchán) #10330785975d922
] - deps: ICU 58.2 bump download URL (Steven R. Loomis) #10206bce0013dd8
] - deps: ICU 58.2 bump (Steven R. Loomis) #10206dcc20f12a6
] - doc: clarify the statement in vm.createContext() (AnnaMag) #105198e78953c88
] - doc: add joyeecheung to collaborators (Joyee Cheung) #10603d08463a9e3
] - doc: unify dirname and filename description (Sam Roberts) #105277ad0f7bc32
] - doc: redirect 'Start a Working Group' to TSC repo (William Kapke) #9655deb0917f76
] - doc: warn about unvalidated input in child_process (Matthew Garrett) #1046696c3c65a86
] - doc: require two-factor authentication (Rich Trott) #10529a7c12fef6c
] - doc: add Working Group dissolution text (William Kapke) #9656e86bf27fe8
] - doc: improve rinfo object documentation (Matt Crummey) #100505b7b457643
] - doc: add tls.DEFAULT_ECDH_CURVE (Sam Roberts) #10264cf3f75f6f0
] - doc: fixup errors in stream.md (Fumiya KARASAWA) #1041189fb82214f
] - doc: use "Node.js" in V8 guide (Rich Trott) #10438aabaef0aa7
] - doc: more efficient example in the console.md (Vse Mozhet Byt) #104513d181ce4fd
] - doc: var -> const / let in the console.md (Vse Mozhet Byt) #104519ce28ec3c5
] - doc: add the valid link for curl(1) in repl.md (Vse Mozhet Byt) #10244cffbfba4df
] - doc: replace anonymous functions in repl.md (Vse Mozhet Byt) #10244f281b190d5
] - doc: fix a function name in repl.md (Vse Mozhet Byt) #10244b8e2711ddd
] - doc: fix an output example in repl.md (Vse Mozhet Byt) #10244ae61232493
] - doc: white space unification in repl.md (Vse Mozhet Byt) #1024437cb971c65
] - doc: var => let / const in repl.md (Vse Mozhet Byt) #102446f8c6133e3
] - doc: update CONTRIBUTING.MD with link to V8 guide (sarahmeyer) #100708a9d68ad7c
] - doc: improve common.mustCall() explanation (Rich Trott) #103904365bb45b8
] - doc: consistent 'Returns:' part two (Myles Borins) #1039121fca4bdda
] - doc: require() tries first core not native modules (Vicente Jimenez Aguilar) #103246284d83092
] - doc: clarify macosx-firewall suggestion BUILDING (Chase Starr) #103110c4cf24f70
] - doc: update process.versions.modules documentation (Kevin Zurawel) #9901b67879f6f4
] - doc: clarify the review and landing process (Joyee Cheung) #102029044423bb6
] - doc: modernize code examples in the cluster.md (Vse Mozhet Byt) #102702eec9afdb1
] - doc: add Michaël Zasso to the CTC (Michaël Zasso)85d2a2abcf
] - doc: update writable.write return value (Tanuja-Sawant) #946837563fafca
] - doc: fix broken link in COLLABORATOR_GUIDE.md (Emanuel Buholzer) #10337f9a5c13ff3
] - dtrace: resolve conversion warnings from SLURP_INT (Christopher J. Brody) #10143bc379fda75
] - events: optimize arrayClone by copying forward (Benedikt Meurer) #105717ece950ffe
] - events: improve once() performance (Brian White) #104456629f8f83f
] - fs: cache non-symlinks in realpathSync. (Jeremy Yallop) #10253abde7644a5
] - (SEMVER-MINOR) fs: support Uint8Array input to methods (Anna Henningsen) #1038232b6bcdd83
] - http: optimize headers iteration (Brian White) #6533a760d707ad
] - http: simplify boolean checks (Brian White) #6533c8ad127abc
] - http: extract validation functions (Brian White) #65338a2a763f13
] - http: improve validation performance (Brian White) #6533df8b8b257d
] - http: refactor server connection handling (Brian White) #65331f0fd7b35d
] - http: misc cleanup and minor optimizations (Brian White) #6533b094b49659
] - http: reuse existing headers array for raw values (Brian White) #65334bed9475d1
] - inspector: fix Coverity defects (Eugene Ostroukhov) #10240023956187e
] - inspector: split HTTP/WS server from the inspector (Eugene Ostroukhov) #9630aed5e27451
] - lib: avoid recompilation of anonymous functions (Brian White) #6533064607be58
] - meta: modify pull request template for prepending (Rich Trott) #1048475efdeb635
] - os: fix os.release() for aix and add test (jBarz) #102456796bf4829
] - repl: allow autocompletion for scoped packages (Evan Lucas) #1029611ed8007df
] - src: describe what NODE_MODULE_VERSION is for (Sam Roberts) #104145e5b1f8b89
] - src: return early if nextTickQueue is empty (Trevor Norris) #102745852336207
] - test: add tests for clearBuffer state machine (Safia Abdalla) #99226ec798bdd6
] - test: update test-cluster-shared-handle-bind-error (cjihrig) #1054732401b5069
] - test: avoid assigning this to variables (cjihrig) #10548e1fbd72ae7
] - test: s/ASSERT/assert/ (cjihrig) #1054405b0092230
] - test: refactor test-debugger-remote (Sakthipriyan Vairamani (thefourtheye)) #1045582575f9341
] - test: refactor test-stream-unshift-read-race (Rich Trott) #105324d984ecadb
] - test: refactor test-stream-pipe-error-handling (Rich Trott) #105302619236212
] - test: refactor test-tls-alert-handling (Rich Trott) #104828ac9d07805
] - test: fix flaky test-http-client-timeout-with-data (Rich Trott) #10431ef5a43a0e3
] - test: improve test-http-allow-req-after-204-res (Adrian Estrada) #105034a16f9b054
] - test: improve test-fs-empty-readStream.js (Adrian Estrada) #104795fc93ee841
] - test: refactor the code in test-http-connect (Adrian Estrada) #1039778e8aa81c9
] - test: refactor test-stream-pipe-after-end (Rich Trott) #104830a0c190db5
] - test: use strictEqual in test-http-server (Fabrice Tatieze) #1047804d82a5122
] - test: refactor test-stdin-from-file (Rob Adelmann) #1033100f791af74
] - test: refactor test-stream2-unpipe-drain (Chris Story) #10033eb1adbb48e
] - test: refactor the code in test-dns-ipv4 (Adrian Estrada) #10200dff48af67f
] - test: add regex to text-crypto-random (Nate) #100205164b56224
] - test: add test for SIGWINCH handling by stdio.js (Sarah Meyer) #100631aa3ab1ec6
] - test: refactor the code in test-fs-chmod (Adrian Estrada) #104404f1d9452de
] - test: swap var for let/const throughout (Paul Graham) #10177f6ed233546
] - test: improve the code in test-pipe.js (Adrian Estrada) #10452011bd4675a
] - test: improve code in test-fs-readfile-error (Adrian Estrada) #1036798fcb221d5
] - test: improve code in test-vm-preserves-property (Adrian Estrada) #10428cdf028c5a6
] - test: improve code in test-vm-symbols (Adrian Estrada) #1042994a894acf2
] - test: fix and improve debugger-client test (Sakthipriyan Vairamani (thefourtheye)) #10371d4c888df88
] - test: basic functionality of readUIntLE() (larissayvette) #10359a5b8d097c5
] - test: clean up repl-reset-event file (Kailean Courtney) #9931599a2a956b
] - test: refactor test-child-process-ipc (malen) #9990d33e560929
] - test: fix and improve debug-break-on-uncaught (Sakthipriyan Vairamani (thefourtheye)) #103709349f086d9
] - test: refactor test-internal-modules (Christy Leung) #100162ad9faa19e
] - test: add second argument to assert.throws() (Ken Russo) #99874bfd9c0a35
] - test: refactor test-pipe-file-to-http (Josh Mays) #100541b9f548e7d
] - test: refactor test-tls-interleave (Brian Chirgwin) #10017db3ac5d6e7
] - test: refactor test-tls-client-getephemeralkeyinfo (Harish Tejwani) #9954bbe618d3e2
] - test: refactor test-cluster-send-handle-twice.js (Amar Zavery) #100495d64f3d76f
] - test: update test-tls-check-server-identity.js (Kevin Cox) #9986e6702d6d9b
] - test: fix flaky test-https-timeout (Rich Trott) #1040444f4d6001f
] - test: improve test-cluster-net-listen.js (Rico Cai) #9953d3bef30b5f
] - test: refactor test-child-process-stdin (Segu Riluvan) #10420e9b2325d68
] - test: test error messages in test-dns-regress-7070 (Wallace Zhang) #10058826decf8e5
] - test: basic functionality of readUIntBE() (larissayvette) #1041791a2dc216d
] - test: improve test-cluster-worker-constructor.js (Adrian Estrada) #10396a82be5d44c
] - test: refactor test-init.js (Sakthipriyan Vairamani (thefourtheye)) #10384ed76bfa7ba
] - test: refactor code in test-cluster-http-pipe (Adrian Estrada) #102979a0711d37f
] - test: improve code in test-http-bind-twice.js (Adrian Estrada) #103189d0220c4de
] - test: fix linter error in whatwg-url-parsing (Sakthipriyan Vairamani (thefourtheye)) #10421bee7d7e32c
] - test: change var declarations, add mustCall check (Daniel Sims) #9962a2ec794d3b
] - test: added validation regex argument to test (Avery, Frank) #991814826d0569
] - test: refactoring test-cluster-worker-constructor (Christopher Rokita) #9956274eef4da0
] - test: refactoring test-pipe-head (Travis Bretton) #100367c406e819b
] - test: refactor test-stdin-script-child (Emanuel Buholzer) #10321501165f0c1
] - test: fix timers-same-timeout-wrong-list-deleted (Rich Trott) #10362ba63363512
] - test: refactor test-stream2-writable (Rich Trott) #10353a5a738cca7
] - test: refactor test-tls-0-dns-altname (Richard Karmazin) #994812a3b189da
] - test: refactor test-cluster-net-listen (Segu Riluvan) #1004718a75a085d
] - test: test: refactor test-sync-fileread (Jason Wohlgemuth) #9941815b5bdcf4
] - test: change assert.strict to assert.strictEqual() (Ashita Nagesh) #9988f1cc0a4d26
] - test: add regex check in test-buffer-bad-overload (Sam Shull) #100380684211d12
] - test: refactor the code in test-http-keep-alive (Adrian Estrada) #10350a815a23631
] - test: improve domain-top-level-error-handler-throw (CodeVana) #99503448e8e522
] - test: use strictEqual in test-cwd-enoent-repl.js (Neeraj Sharma) #9952fc2fd920ab
] - test: refactor test-net-reconnect-error (Duy Le) #9903a7c9c5685e
] - test: add test-require-invalid-package (Duy Le) #9903d1b4c5dc61
] - test: refactor test-child-process-kill (Duy Le) #99032f92945a70
] - test: use consistent block spacing (Rich Trott) #103779a9e530291
] - test: add known_issues test for #5350 (AnnaMag) #1031976b0e5bfbe
] - test: refactor test-timers-this (Rich Trott) #10315797d9a8e79
] - tools: refactor json.js (Rich Trott) #1044205332942e2
] - tools: enforce linebreak after ternary operators (Michaël Zasso) #102133a7b63b81b
] - tools: enable block-spacing rule in .eslintrc (Rich Trott) #103773195fb45ae
] - url: set toStringTag for the URL class (James M Snell) #10562659d522d7c
] - url: fix accidental filemode change (James M Snell) #105496977224059
] - url: fix URL query update if searchParams changes (Michaël Zasso) #1048678e867492a
] - url: improve spec compliance of WHATWG URL (Michaël Zasso) #103172b98ea0dec
] - url: move originFor, domainToAscii and domainToUnicode (James M Snell) #10512e210efad9e
] - url: performance improvement in URL implementation (James M Snell) #104697fbd12f876
] - url: make WHATWG URL properties spec compliant (Joyee Cheung) #10408495213e545
] - url: mark ignored return value in node::url::Parse(...) (Christopher J. Brody) #10141ba46374cb9
] - watchdog: add flag to mark handler as disabled (Bartosz Sosnowski) #10248本站原创,转载时保留以下信息:
本文转自:深度开源(open-open.com)
原文地址:http://www.open-open.com/news/view/11e6b2d