
看到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提供了其他语言能够实现的许多功能。
87cdb83a96] - benchmark: merge url.js with url-resolve.js (Andreas Madsen) #5177921e8568d5] - benchmark: move misc to categorized directories (Andreas Madsen) #5177c189eec14e] - benchmark: fix configuation parameters (Andreas Madsen) #517758ad451f0b] - benchmark: move string-decoder to its own category (Andreas Madsen) #5177a01caa3166] - build: don't compile with -B, redux (Ben Noordhuis) #665037606caeaf] - build: don't compile with -B (Ben Noordhuis) #639364fb7a1929] - build: update android-configure script for npm (Robert Chiras) #634943ce6fc8d2] - build: fix DESTCPU detection for binary target (Richard Lau) #63106dfe7aeed5] - cares: Support malloc(0) scenarios for AIX (Gireesh Punathil) #63052389006720] - debugger: display array contents in repl (cjihrig) #64481c6809ce75] - debugger: introduce exec method for debugger (Jackson Tian)200b3ca9ed] - deps: upgrade npm in LTS to 2.15.8 (Rebecca Turner) #741249921e8819] - deps: backport 102e3e87e7 from V8 upstream (Myles Borins) #7442de00f91041] - deps: backport bc2e393 from v8 upstream (evan.lucas) #37921549899531] - dgram,test: add addMembership/dropMembership tests (Rich Trott) #67530ba3c2ca66] - doc: fix layout problem in v4 changelog (Myles Borins) #739498469ad84d] - doc: correct args for cluster message event (Colin Ihrig) #729767863f110b] - doc: update licenses (Myles Borins) #7127c31eaad42d] - doc: clarify buffer class (Steve Mao) #6914e0dd476fe5] - doc: fix typos in timers topic to aid readability (Kevin Donahue) #6916a8391bc9fc] - doc: add jhamhader to collaborators (Yuval Brik) #694622ca7b877b] - doc: add @othiym23 to list of collaborators (Forrest L Norvell) #69452c3c4e5819] - doc: reference list of language-specific globals (Anna Henningsen) #69005a1a0b5ed1] - doc: make the api doc print-friendly (Marian) #674803db88e012] - doc: add bengl to collaborators (Bryan English) #6921fbf95dde94] - doc: Update DCO to v1.1 (William Kapke) #6353f23a9c39c0] - doc: fix typo in Error.captureStackTrace (Mohsen) #681130ab6a890c] - doc: fix name to match git log (Robert Jefe Lindstaedt) #68802b0f40ca16] - doc: add note for fs.watch virtualized env (Robert Jefe Lindstaedt) #68093b461870be] - doc: Backport ee.once doc clarifications to 4.x. (Lance Ball) #7103eadb7e5b20] - doc: subdivide TOC, add auxiliary links (Jeremiah Senkpiel) #6167107839c5dd] - doc: no Node.js(1) (Jeremiah Senkpiel) #6167401325f9e2] - doc: better example & synopsis (Jeremiah Senkpiel) #6167c654184f28] - doc: remove link to Sign in crypto.md (Kirill Fomichev) #68123e9288e466] - doc: fix exec example in child_process (Evan Lucas) #66603d820e45b4] - doc: "a" -> "an" in api/documentation.md (Anchika Agarwal) #6689352496daa2] - doc: move the readme newcomers section (Jeremiah Senkpiel) #6681ac6b921ce5] - doc: mention existence/purpose of module wrapper (Matt Harrison) #643397d1fc0fc6] - doc: improve onboarding-extras.md formatting (Jeremiah Senkpiel) #6548c9b144ddd4] - doc: linkify remaining references to fs.Stats object (Kevin Donahue) #6485d909c25a33] - doc: fix the lint of an example in cluster.md (yorkie) #651621d02f460f] - doc: add missing underscore for markdown italics (Kevin Donahue) #652918ecc779bb] - doc: ensure consistent grammar in node.1 file (justshiv) #642652d9e7b61d] - doc: fix a typo in __dirname section (William Luo) #6473de20235235] - doc: remove all scrollbar styling (Claudio Rodriguez) #6479a6f45b4eda] - doc: Remove extra space in REPL example (Juan) #6447feda15b2b8] - doc: update build instructions for OS X (Rich Trott) #63093d1a3e4a30] - doc: change references to Stable to Current (Myles Borins) #6318e28598b1ef] - doc: update authors (James M Snell) #63730f3a94acbd] - doc: add JacksonTian to collaborators (Jackson Tian) #6388d7d54c8fd2] - doc: add Minqi Pan to collaborators (Minqi Pan) #638783721c6fd2] - doc: add eljefedelrodeodeljefe to collaborators (Robert Jefe Lindstaedt) #6389b112fd1b4e] - doc: add ronkorving to collaborators (ronkorving) #6385ac60d9cc86] - doc: add estliberitas to collaborators (Alexander Makarenko) #6386435cd56de5] - doc: DCO anchor that doesn't change (William Kapke) #62577d8141dd1b] - doc: add stefanmb to collaborators (Stefan Budeanu) #62276dfc96326d] - doc: add iWuzHere to collaborators (Imran Iqbal) #62263dbcc73159] - doc: add santigimeno to collaborators (Santiago Gimeno) #6225ae3eb24a3d] - doc: add addaleax to collaborators (Anna Henningsen) #622446ee7bb4ba] - doc: fix incorrect references in buffer docs (Amery) #6194e3f78eb7c1] - doc: improve rendering of v4.4.5 changelog entry (Myles Borins) #6958bac87d01d9] - gitignore: adding .vs/ directory to .gitignore (Mike Kaufman) #607093f2314dc2] - gitignore: ignore VS 2015 *.VC.opendb files (Mike Kaufman) #6070c98aaf59bf] - http: speed up checkIsHttpToken (Jackson Tian) #4790552e25cb6b] - lib,test: update in preparation for linter update (Rich Trott) #6498aaeeec4765] - lib,test,tools: alignment on variable assignments (Rich Trott) #6869b3acbc5648] - net: replace defineGetter with defineProperty (Fedor Indutny) #62844c1eb5bf03] - repl: create history file with mode 0600 (Carl Lei) #339490306bb81d] - src: use size_t for http parser array size fields (Ben Noordhuis) #5969af41a63d0f] - src: replace ARRAY_SIZE with typesafe arraysize (Ben Noordhuis) #5969037291e31f] - src: make sure Utf8Value always zero-terminates (Anna Henningsen) #7101a08a0179e9] - stream: ensure awaitDrain is increased once (David Halls) #7292b73ec46dcb] - stream: reset awaitDrain after manual .resume() (Anna Henningsen) #716055319fe798] - stream_base: expose bytesRead getter (Fedor Indutny) #62840414d882ce] - test: fix test-net-* error code check for getaddrinfo(3) (Natanael Copa) #5099be0bb5f5fc] - test: fix unreliable known_issues test (Rich Trott) #6555ab50e82f42] - test: fix test-process-exec-argv flakiness (Santiago Gimeno) #71284e38655d5f] - test: refactor test-tls-reuse-host-from-socket (Rich Trott) #67561c4549a31e] - test: fix flaky test-stdout-close-catch (Santiago Gimeno) #68083b94e31245] - test: robust handling of env for npm-test-install (Myles Borins) #67974067cde7ee] - test: abstract skip functionality to common (Jeremiah Senkpiel) #71148b396e3d71] - test: fix test-debugger-repl-break-in-module (Rich Trott) #6686847b29c050] - test: fix test-debugger-repl-term (Rich Trott) #66821d68bdbe3f] - test: fix error message checks in test-module-loading (James M Snell) #59867e739ae159] - test,tools: adjust function argument alignment (Rich Trott) #7100216486c2b6] - tools: lint for function argument alignment (Rich Trott) #71006a76485ad7] - tools: update ESLint to 2.9.0 (Rich Trott) #6498a31153c02c] - tools: remove the minifying logic (Sakthipriyan Vairamani) #663610bd1a73fd] - tools: fix license-builder.sh again for ICU (Steven R. Loomis) #60680f6146c6c0] - tools: add tests for the doctool (Ian Kronquist) #6031cc3645cff3] - tools: lint for alignment of variable assignments (Rich Trott) #6869| Windows Installer (.msi) | 32-bit | 64-bit | ||||
|---|---|---|---|---|---|---|
| Windows Binary (.exe) | 32-bit | 64-bit | ||||
| Mac OS X Installer (.pkg) | 64-bit | |||||
| Mac OS X Binaries (.tar.gz) | 64-bit | |||||
| Linux Binaries (.tar.xz) | 32-bit | 64-bit | ||||
| Source Code | node-v4.4.7.tar.gz | |||||
| ARM Binaries (.tar.xz) | ARMv6 | ARMv7 | ARMv8 | |||
|---|---|---|---|---|---|---|
| SunOS Binaries (.tar.xz) | 32-bit | 64-bit | ||||
| Docker Image | Official Node.js Docker Image | |||||
| Linux on Power Systems | 64-bit le | 64-bit be | ||||
| Linux on System z | Download (Unofficial, provided by IBM) | |||||
| AIX on Power Systems | Download (Unofficial, provided by IBM) | |||||