
看到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提供了其他语言能够实现的许多功能。
18599fc3d7] - doc/url: various improvements to WHATWG API (Timothy Gu)e7d37a3f09] - tools/doc: add more intrinsic and custom types (Timothy Gu)6bcc841786] - assert: apply minor refactoring (Rich Trott) #115116a2f330dbd] - assert: remove unneeded condition (Rich Trott) #113140762482339] - assert: unlock the assert API (Rich Trott) #11304842ac583f6] - benchmark: add url.domainTo*() (Timothy Gu) #114643951bd9ac1] - benchmark: strip BOM in dgram/bind-params (Anna Henningsen) #11479e1573b9fb7] - benchmark: add dgram bind(+/- params) benchmark (Vse Mozhet Byt) #1131348f6660d78] - benchmark: fix timer display in progress output (Brian White) #112355a81031fd8] - benchmark: clean up legacy url benchmarks (Joyee Cheung)7e37628c51] - benchmark: add url/url-searchparams-sort.js (Timothy Gu)4ffad094ba] - buffer: refactor slowToString (James M Snell) #11358d08a8e68e8] - buffer: avoid use of arguments (James M Snell) #113584408437796] - build: add rule to clean addon tests build (Joyee Cheung) #115198d323bb91a] - build: fail on CI if leftover processes (Rich Trott) #11269d4a8631bd1] - build: fix newlines in addon build output (Brian White) #11466bc9c381027] - build: add code coverage to make (Wayne Andrews) #108569c45758cdf] - build: fix building with ninja on linux (Kenan Yildirim) #1134886a647899f] - build: don't rebuild test/gc add-on unnecessarily (Ben Noordhuis) #11311c942e2037c] - child_process: refactor internal/child_process.js (Arseniy Maximov) #113660240eb99a2] - child_process: remove empty if condition (cjihrig) #1142760fc567952] - child_process: move anonymous class to top level (Jackson Tian) #1114758e2517fc0] - child_process: exit spawnSync with null on signal (cjihrig) #112884b4bc13758] - cluster: properly handle --inspect-{brk,port} (Ali Ijaz Sheikh) #11386570c5e1da8] - (SEMVER-MINOR) crypto: support OPENSSL_CONF again (Sam Roberts) #11006d4000e73ed] - deps: cherry-pick 7c982e7 from V8 upstream (Jaideep Bajwa) #11263bd4ccc892c] - src: add tracing controller (misterpoe) #11106aef67cfe39] - dgram: fix possibly deoptimizing use of arguments (Vse Mozhet Byt) #11242662b0c31ce] - dns: avoid use of arguments (James M Snell) #11359fedf26b235] - doc: update V8 debugger doc to mention --inspect-brk (James Ide) #114951c7f221ef5] - doc: adding deprecations.md (Italo A. Casas) #1162190bdf16507] - doc: link to readable and writeable stream section (Sebastian Van Sande) #115173b66ccf0ff] - doc: document clientRequest.aborted (Zach Bjornson) #11544128f812157] - doc: argument types for assert methods (Amelia Clarke) #11548b1b6b8b730] - doc: add changelogs for buffer (Anna Henningsen) #11489597945136e] - doc: add changelogs for v8 (Anna Henningsen) #11489b01fd8ce3a] - doc: fix sorting in API references (Vse Mozhet Byt) #1152956cd1932c1] - doc: note message event listeners ref IPC channels (Diego Rodríguez Baquero) #1149447034e12ad] - doc: change broken fg(1) links to fg(1p) (Karan Thakkar) #1150447dc5662f3] - doc: add changelogs for zlib (Anna Henningsen) #114894d122700ab] - doc: add changelogs for vm (Anna Henningsen) #11489b868468942] - doc: add changelogs for util (Anna Henningsen) #1148993e7639c12] - doc: add changelogs for url (Anna Henningsen) #11489f7d59e5568] - doc: add changelogs for tls (Anna Henningsen) #11489fc53547ed4] - doc: add changelogs for stream (Anna Henningsen) #11489c373e07a09] - doc: add changelogs for repl (Anna Henningsen) #11489962d27dbde] - doc: add changelogs for readline (Anna Henningsen) #114897c609dc30a] - doc: add changelogs for querystring (Anna Henningsen) #114896285ff2275] - doc: add changelogs for punycode (Anna Henningsen) #11489df30bc869a] - doc: add changelogs for process (Anna Henningsen) #11489c1477b9bd3] - doc: add changelogs for path (Anna Henningsen) #11489ac10a3b306] - doc: add changelogs for os (Anna Henningsen) #114893183397c8a] - doc: add changelogs for net (Anna Henningsen) #114896cc8f19e99] - doc: add changelogs for http (Anna Henningsen) #11489f0cee80de7] - doc: add changelogs for fs (Anna Henningsen) #11489354161d804] - doc: add changelogs for events (Anna Henningsen) #114894f936014ff] - doc: add changelogs for dns (Anna Henningsen) #114895bc9349d40] - doc: add changelogs for dgram (Anna Henningsen) #11489e23598d09f] - doc: add changelogs for crypto (Anna Henningsen) #11489296e22adce] - doc: add changelogs for console (Anna Henningsen) #11489de83e215cb] - doc: add changelogs for cluster (Anna Henningsen) #114895d4e638e34] - doc: add changelogs for cli (Anna Henningsen) #11489ad1ad4d06d] - doc: add changelogs for child_process (Anna Henningsen) #1148942413b611b] - doc: add changelogs for assert (Anna Henningsen) #11489d3013678fb] - doc: change STYLE-GUIDE to STYLE_GUIDE (Dean Coakley) #11460c5ff76dadf] - doc: restrict the ES.Next features usage in tests (DavidCai) #1145298eb18ba3f] - doc: add comment for net.Server's error event (QianJin2013) #1113620d86db9bb] - doc: add version meta for SSL_CERT_DIR/FILE (Sam Roberts) #1100766f9506c63] - doc: improve test/README.md (Joyee Cheung) #112375d12fd9a4b] - doc: add benchmark/README.md and fix guide (Joyee Cheung) #1123722a6eddc5c] - doc: move benchmark/README.md to doc/guides (Joyee Cheung) #1123712cf359423] - doc: add comment for net.Server.listen IPv6 '::' (QianJin2013) #1113483fe819131] - doc: add STYLE_GUIDE (moved from nodejs/docs) (Gibson Fahnestock) #11321ef1731d972] - doc: add missing function to test common doc (Rich Trott) #11382c3c874f514] - doc: dns examples implied string args were arrays (Sam Roberts) #113505f1a568ccc] - doc: describe when stdout/err is sync (Sam Roberts) #108845a2db15736] - doc: add documentation for url.format(URL[, options]); (James M Snell)4d7c9427c1] - doc: synchronize + update _toc.md and all.md (Vse Mozhet Byt) #112066a45265e81] - doc: update code examples in domain.md (Vse Mozhet Byt) #1111089b66dc636] - doc,test: args to buffer.copy can be Uint8Arrays (Anna Henningsen) #114864f6a3d38c3] - domain,events: support non-object 'error' argument (Ben Noordhuis) #11438214a39294a] - (SEMVER-MINOR) errors: add internal/errors.js (James M Snell) #11220758126301e] - fs: improve performance for sync stat() functions (Brian White) #115223e8d43d165] - http: add new functions to OutgoingMessage (Brian White) #11562614742b67f] - (SEMVER-MINOR) lib: deprecate node --debug at runtime (Josh Gavant) #11275a710167c79] - lib: rename kMaxCallbacksUntilQueueIsShortened (JungMinu) #1147361e1af2155] - lib: remove unnecessary assignments with _extend (Sakthipriyan Vairamani (thefourtheye)) #11364d1549bf8d9] - lib: add constant kMaxCallbacksUntilQueueIsShortened (Daniel Bevenius) #111993afe90dc9b] - net: prefer === to == (Arseniy Maximov) #11513db06c7311b] - os: improve loadavg() performance (Brian White) #11516fe7a722468] - process: fix typo in comments (levsthings) #1150354e1f0c219] - process: improve memoryUsage() performance (Brian White) #11497fb85f5049e] - src: clean up MaybeStackBuffer (Timothy Gu) #11464beda32675f] - src: don't assume v8::Local is using-declared (Timothy Gu) #1146464a92565e0] - src: update http-parser link (Daniel Bevenius) #11477539e83a820] - src: remove usage of deprecated debug API (Yang Guo) #114378be6702539] - (SEMVER-MINOR) src: add SafeGetenv() to internal API (Sam Roberts) #110067d47f27049] - src: remove unused variable in node_crypto (cjihrig) #113618a5c0fb0ff] - src: remove unused typedef (Ben Noordhuis) #1132239b00349b8] - src, i18n: cleanup usage of MaybeStackBuffer (Timothy Gu) #11464d0483ee47b] - test: change common.expectsError() signature (Rich Trott) #11512f193c6f996] - test: favor assertions over console logging (Rich Trott) #115474b05ec3b95] - test: run test-setproctitle where supported (Howard Hellyer) #11416ff854834b6] - test: fix flaky test-vm-timeout-rethrow (Kunal Pathak) #11530d7fd694cee] - test: remove redundant additional url tests (Joyee Cheung) #11439e92ddd46bb] - test: synchronize WPT url test data (Joyee Cheung) #114394109e0edc4] - test: remove WHATWG URL test data file extension (Joyee Cheung) #11439ecb3a7e933] - (SEMVER-MINOR) test: make tls-socket-default-options tests run (Sam Roberts) #11005f5b4849208] - test: test bottom-up merge sort in URLSearchParams (Daijiro Wachi) #11399ff927b2cf8] - test: add cases for unescape & unescapeBuffer (Daijiro Wachi) #11326ea29d4852a] - test: use expectsError in test-debug-agent.js (Arseniy Maximov) #114108e455a9093] - test: add test for URLSearchParams inspection (Daijiro Wachi) #11428ae9b891a39] - test: use expectsError in require-invalid-package (Rich Trott) #1140991fac08c3b] - test: use common.expectsError() (Rich Trott) #1140846084e3270] - test: refactor common.expectsError() (Rich Trott) #113818fdb6c24f9] - test: throw check in test-zlib-write-after-close (Jason Wilson) #11482b395ed9407] - test: increase coverage of vm (DavidCai) #11377000b2a14c1] - test: add support for --gtest_filter (Daniel Bevenius) #1147434220b75e2] - test: add regex check to test-module-loading (Tarang Hirani) #114134509d84095] - test: improve coverage in test-crypto.dh (Eric Christie) #11253da10e2649d] - test: add error checking in callback (Rich Trott) #114467b8087630f] - test: refactor test-http-response-splitting (Arseniy Maximov) #11429c37e2b7690] - test: add test cases for path (Yuta Hiroto) #11453a523482cca] - test: enhance test-common.js (Rich Trott) #114331d86a9f5eb] - test: fix over-dependence on native promise impl (Ali Ijaz Sheikh) #11437b457f38e68] - test: add coverage for utf8CheckIncomplete() (xiaoyu) #11419ca1bae6f3e] - test: remove unused args and comparison fix (Alexander) #113968ee236f85a] - test: improve crypto coverage (樋口 彰) #11279add762550c] - test: consolidate buffer.read() in a file (larissayvette) #11297e416967244] - test: cases to querystring related to empty string (Daijiro Wachi) #113295723087cdd] - test: refactor test-dgram-membership (Rich Trott) #11388aea0d501d7] - test: improve message in net-connect-local-error (Rich Trott) #1139382882f4e90] - test: cover dgram socket close during bind case (cjihrig) #11383f495389d67] - test: refactor test-tls-cert-chains-in-ca (Rich Trott) #11367348f2ef59f] - test: improve crypto coverage (Akito Ito) #11280e7978f04a4] - test: cover dgram socket close during cluster bind (cjihrig) #1129266081d1ddb] - test: increase coverage of buffer (DavidCai) #113127aaa960f4c] - test, url: synchronize WPT url tests (Joyee Cheung)506a1cb03f] - timer,domain: maintain order of timer callbacks (John Barboza) #105224e327708a9] - (SEMVER-MINOR) tls: new tls.TLSSocket() supports sec ctx options (Sam Roberts) #11005f37ab7968e] - tls: do not crash on STARTTLS when OCSP requested (Fedor Indutny) #107065f94ff6231] - tls: avoid potentially deoptimizing use of arguments (James M Snell) #113570934a27c75] - tools: enable unicode-bom ESLint rule (Anna Henningsen) #11479eea2eb9111] - tools: enable one-var-declaration-per-line ESLint rule (Michaël Zasso) #114625b5dca9076] - tools: suggest python2 command in configure (Roman Reiss) #11375d9d541d564] - tools,doc: enable changelogs for items (Anna Henningsen) #114894ee9220565] - tty: avoid oob warning in TTYWrap::GetWindowSize() (Dmitry Tsvettsikh) #114545f10827248] - url: fix handling of ? in URLSearchParams creation (Timothy Gu) #1137272da362d6e] - url: fix file state clarification in binding (Daijiro Wachi) #111234366ab539f] - url: implement URL.prototype.toJSON (Michaël Zasso) #112368dbd562590] - url: fix surrogate handling in encodeAuth() (Timothy Gu)c25c16cc1b] - url: add urlSearchParams.sort() (Timothy Gu)d8cb65aa6e] - url, test: synchronize WPT url tests for file URL (Daijiro Wachi) #11123237db9c497] - util: cleanup internalUtil.deprecate (James M Snell) #1145095bee8f202] - util: eliminate unnecessary exports (James M Snell) #114513bdac54e67] - util: use ES2015+ Object.is to check negative zero (Shinnosuke Watanabe) #113323d133ebd3d] - util, debugger: remove internalUtil.error (James M Snell) #11448f55c628b2a] - vm: refactor vm module (James M Snell) #11392本站原创,转载时保留以下信息:
本文转自:深度开源(open-open.com)
原文地址:http://www.open-open.com/news/view/73b51029