Node.js - Wikipedia

文章推薦指數: 80 %
投票人數:10人

Node.js is an open-source, cross-platform, back-end JavaScript runtime environment that runs on a JavaScript Engine (i.e. V8 engine) and executes JavaScript ... Node.js FromWikipedia,thefreeencyclopedia Jumptonavigation Jumptosearch JavaScriptruntimeenvironment Node.jsOriginalauthor(s)RyanDahlDeveloper(s)OpenJSFoundationInitialreleaseMay 27,2009;13yearsago (2009-05-27)[1]Stablerelease18.9.1[2]  /September23,2022;5daysago (September23,2022) Repositorygithub.com/nodejs/node WritteninC,C++,JavaScriptOperatingsystemz/OS,Linux,macOS,MicrosoftWindows,SmartOS,FreeBSD,OpenBSD,IBMAIX[3]TypeRuntimeenvironmentLicenseMITLicense[4][5]Websitenodejs.org  Node.jsisanopen-source,cross-platform,back-endJavaScriptruntimeenvironmentthatrunsonaJavaScriptEngine(i.e.V8engine)andexecutesJavaScriptcodeoutsideawebbrowser,whichwasdesignedtobuildscalablenetworkapplications.Node.jsletsdevelopersuseJavaScripttowritecommandlinetoolsandforserver-sidescripting—runningscriptsserver-sidetoproducedynamicwebpagecontentbeforethepageissenttotheuser'swebbrowser.Consequently,Node.jsrepresentsa"JavaScripteverywhere"paradigm,[6]unifyingweb-applicationdevelopmentaroundasingleprogramminglanguage,ratherthandifferentlanguagesforserver-sideandclient-sidescripts. Node.jshasanevent-drivenarchitecturecapableofasynchronousI/O.Thesedesignchoicesaimtooptimizethroughputandscalabilityinwebapplicationswithmanyinput/outputoperations,aswellasforreal-timeWebapplications(e.g.,real-timecommunicationprogramsandbrowsergames).[7] TheNode.jsdistributeddevelopmentprojectwaspreviouslygovernedbytheNode.jsFoundation,[8]andhasnowmergedwiththeJSFoundationtoformtheOpenJSFoundation,whichisfacilitatedbytheLinuxFoundation'sCollaborativeProjectsprogram.[9] CorporateusersofNode.jssoftwareincludeGoDaddy,[10]Groupon,[11]IBM,[12]LinkedIn,[13][14]Microsoft,[15][16]Netflix,[17]PayPal,[18][19]SAP,[20]Walmart,[21]Yahoo!,[22]andAmazonWebServices.[23] Contents 1History 2Overview 2.1Platformarchitecture 2.2Industrysupport 3Releases 4Technicaldetails 4.1Internals 4.2Threading 4.3V8 4.4Packagemanagement 4.5UnifiedAPI 4.6Eventloop 4.7WebAssembly 4.8Nativebindings 5Projectgovernance 6Seealso 7References 8Furtherreading 9Externallinks History[edit] RyanDahl,creatorofNode.js,in2010 Node.jswaswritteninitiallybyRyanDahlin2009,[24]aboutthirteenyearsaftertheintroductionofthefirstserver-sideJavaScriptenvironment,Netscape'sLiveWireProWeb.[25]TheinitialreleasesupportedonlyLinuxandMacOSX.ItsdevelopmentandmaintenancewasledbyDahlandlatersponsoredbyJoyent.[26] Dahlcriticizedthelimitedpossibilitiesofthemostpopularwebserverin2009,ApacheHTTPServer,tohandlealotofconcurrentconnections(upto10,000andmore)andthemostcommonwayofcreatingcode(sequentialprogramming),whencodeeitherblockedtheentireprocessorimpliedmultipleexecutionstacksinthecaseofsimultaneousconnections.[27] DahldemonstratedtheprojectattheinauguralEuropeanJSConfonNovember8,2009.[28][29][30]Node.jscombinedGoogle'sV8JavaScriptengine,aneventloop,andalow-levelI/OAPI.[31] InJanuary2010,apackagemanagerwasintroducedfortheNode.jsenvironmentcallednpm.[32]ThepackagemanagermakesiteasierforprogrammerstopublishandsharesourcecodeofNode.jspackagesandisdesignedtosimplifyinstallation,updating,anduninstallationofpackages.[31] InJune2011,MicrosoftandJoyentimplementedanativeWindowsversionofNode.js.[33]ThefirstNode.jsbuildsupportingWindowswasreleasedinJuly2011. InJanuary2012,Dahlsteppedaside,promotingcoworkerandnpmcreatorIsaacSchluetertomanagetheproject.[34]InJanuary2014,SchlueterannouncedthatTimothyJ.Fontainewouldleadtheproject.[35] InDecember2014,FedorIndutnystartedio.js,aforkofNode.js.DuetotheinternalconflictoverJoyent'sgovernance,io.jswascreatedasanopengovernancealternativewithaseparatetechnicalcommittee.[36][37]UnlikeNode.js,[38]theauthorsplannedtokeepio.jsup-to-datewiththelatestreleasesoftheGoogleV8JavaScriptengine.[39] InFebruary2015,theintenttoformaneutralNode.jsFoundationwasannounced.ByJune2015,theNode.jsandio.jscommunitiesvotedtoworktogetherundertheNode.jsFoundation.[40] InSeptember2015,Node.jsv0.12andio.jsv3.3weremergedbacktogetherintoNodev4.0.[41]ThismergebroughtV8ES6featuresintoNode.jsandalong-termsupportreleasecycle.[42]Asof2016,theio.jswebsiterecommendsthatdevelopersswitchbacktoNode.jsandthatnofurtherreleasesofio.jsareplannedduetothemerge.[43] In2019,theJSFoundationandNode.jsFoundationmergedtoformtheOpenJSFoundation. InSeptember2022,Node.js18.9.0wasreleased.[44] Overview[edit] Node.jsallowsthecreationofWebserversandnetworkingtoolsusingJavaScriptandacollectionof"modules"thathandlevariouscorefunctionalities.[28][31][45][46][47]ModulesareprovidedforfilesystemI/O,networking(DNS,HTTP,TCP,TLS/SSL,orUDP),binarydata(buffers),cryptographyfunctions,datastreams,andothercorefunctions.[31][46][48]Node.js'smodulesuseanAPIdesignedtoreducethecomplexityofwritingserverapplications.[31][46] JavaScriptistheonlylanguagethatNode.jssupportsnatively,butmanycompile-to-JSlanguagesareavailable.[49]Asaresult,Node.jsapplicationscanbewritteninCoffeeScript,[50]Dart,TypeScript,ClojureScriptandothers. Node.jsisprimarilyusedtobuildnetworkprogramssuchasWebservers.[45]ThemostsignificantdifferencebetweenNode.jsandPHPisthatmostfunctionsinPHPblockuntilcompletion(commandsexecuteonlyafterpreviouscommandsfinish),whileNode.jsfunctionsarenon-blocking(commandsexecuteconcurrentlyoreveninparallel,[51][52]andusecallbackstosignalcompletionorfailure).[45] Node.jsisofficiallysupportedonLinux,macOSandMicrosoftWindows8.1andServer2012(andlater),[3]withtier2supportforSmartOSandIBMAIXandexperimentalsupportforFreeBSD.OpenBSDalsoworks,andLTSversionsavailableforIBMi(AS/400).[53]TheprovidedsourcecodemayalsobebuiltonsimilaroperatingsystemstothoseofficiallysupportedorbemodifiedbythirdpartiestosupportotherssuchasNonStopOS[54]andUnixservers. Platformarchitecture[edit] Node.jsbringsevent-drivenprogrammingtowebservers,enablingdevelopmentoffastwebserversinJavaScript.[31]Developerscancreatescalableserverswithoutusingthreading,byusingasimplifiedmodelofevent-drivenprogrammingthatusescallbackstosignalthecompletionofatask.[31]Node.jsconnectstheeaseofascriptinglanguage(JavaScript)withthepowerofUnixnetworkprogramming.[31] Node.jswasbuiltontopofGoogle'sV8JavaScriptenginesinceitwasopen-sourcedundertheBSDlicense.ItisproficientwithinternetfundamentalssuchasHTTP,DNS,andTCP.[28]JavaScriptwasalsoawell-knownlanguage,makingNode.jsaccessibletothewebdevelopmentcommunity.[28] Industrysupport[edit] Therearethousandsofopen-sourcelibrariesforNode.js,mostofthemhostedonthenpmwebsite.TherearemultipledeveloperconferencesandeventsthatsupporttheNode.jscommunity,includingNodeConf,NodeInteractive,andNodeSummitaswellasanumberofregionalevents. Theopen-sourcecommunityhasdevelopedwebframeworkstoacceleratethedevelopmentofapplications.SuchframeworksincludeConnect,Express.js,Socket.IO,Feathers.js,Koa.js,Hapi.js,Sails.js,Meteor,Derby,andmanyothers.[31][55]VariouspackageshavealsobeencreatedforinterfacingwithotherlanguagesorruntimeenvironmentssuchasMicrosoft.NET.[56] ModerndesktopIDEsprovideeditinganddebuggingfeaturesspecificallyforNode.jsapplications.SuchIDEsincludeAtom,Brackets,JetBrainsWebStorm,[57][58]MicrosoftVisualStudio(withNode.jsToolsforVisualStudio,[59]orTypeScriptwithNodedefinitions,[60][61][62][63])NetBeans,[64]NodeclipseEnideStudio[65](Eclipse-based),andVisualStudioCode.[66][67] Certainonlineweb-basedIDEsalsosupportNode.js,suchasCodeanywhere,Codenvy,Cloud9IDE,Koding,andthevisualfloweditorinNode-RED. Node.jsissupportedacrossanumberofcloud-hostingplatformslikeJelastic,GoogleCloudPlatform,AWSElasticBeanstalk,Joyentandothers. Releases[edit] Release[68] Status Codename Releasedate Maintenanceend Oldversion,nolongermaintained:0.10.x Oldversion,nolongermaintained:End-of-Life 2013-03-11 2016-10-31 Oldversion,nolongermaintained:0.12.x Oldversion,nolongermaintained:End-of-Life 2015-02-06 2016-12-31 Oldversion,nolongermaintained:4.x Oldversion,nolongermaintained:End-of-Life Argon[69] 2015-09-08 2018-04-30 Oldversion,nolongermaintained:5.x Oldversion,nolongermaintained:End-of-Life 2015-10-29 2016-06-30 Oldversion,nolongermaintained:6.x Oldversion,nolongermaintained:End-of-Life Boron[69] 2016-04-26 2019-04-30 Oldversion,nolongermaintained:7.x Oldversion,nolongermaintained:End-of-Life 2016-10-25 2017-06-30 Oldversion,nolongermaintained:8.x Oldversion,nolongermaintained:End-of-Life Carbon[69] 2017-05-30 2019-12-31 Oldversion,nolongermaintained:9.x Oldversion,nolongermaintained:End-of-Life 2017-10-01 2018-06-30 Oldversion,nolongermaintained:10.x Oldversion,nolongermaintained:End-of-Life Dubnium[69] 2018-04-24 2021-04-30 Oldversion,nolongermaintained:11.x Oldversion,nolongermaintained:End-of-Life 2018-10-23 2019-06-01 Oldversion,nolongermaintained:12.x Oldversion,nolongermaintained:End-of-Life Erbium[69] 2019-04-23 2022-04-30 Oldversion,nolongermaintained:13.x Oldversion,nolongermaintained:End-of-Life 2019-10-22 2020-06-01 Olderversion,yetstillmaintained:14.x Olderversion,yetstillmaintained:MaintenanceLTS Fermium[69] 2020-04-21 2023-04-30 Oldversion,nolongermaintained:15.x Oldversion,nolongermaintained:End-of-Life 2020-10-20 2021-06-01 Olderversion,yetstillmaintained:16.x Olderversion,yetstillmaintained:ActiveLTS Gallium[69] 2021-04-20 2023-09-11[70] Oldversion,nolongermaintained:17.x Oldversion,nolongermaintained:End-of-Life 2021-10-19 2022-06-01 Currentstableversion:18.x Currentstableversion:Current 2022-04-19 2025-04-30 Futurerelease:19.x Futurerelease:Planned 2022-10-18 2023-06-01 Futurerelease:20.x Futurerelease:Planned 2023-04-18 2026-04-30 Legend:OldversionOlderversion,stillmaintainedLatestversionLatestpreviewversionFuturerelease NewmajorreleasesofNode.jsarecutfromtheGitHubmasterbrancheverysixmonths.Even-numberedversionsarecutinAprilandodd-numberedversionsarecutinOctober.Whenanewoddversionisreleased,thepreviousevenversionundergoestransitiontoLongTermSupport(LTS),whichgivesthatversion18monthsofactivesupportfromthedateitisdesignatedLTS.Afterthese18monthsexpire,anLTSreleasereceivesanadditional12monthsofmaintenancesupport.Anactiveversionreceivesnon-breakingbackportsofchangesafewweeksaftertheylandinthecurrentrelease.Amaintenancereleasereceivesonlycriticalfixesanddocumentationupdates.[69]TheLTSWorkingGroupmanagesstrategyandpolicyincollaborationwiththeTechnicalSteeringCommitteeoftheNode.jsFoundation. Technicaldetails[edit] Node.jsisaJavaScriptruntimeenvironmentthatprocessesincomingrequestsinaloop,calledtheeventloop. Internals[edit] Node.jsuseslibuvunderthehoodtohandleasynchronousevents.LibuvisanabstractionlayerfornetworkandfilesystemfunctionalityonbothWindowsandPOSIX-basedsystemssuchasLinux,macOS,OSSonNonStop,andUnix. Threading[edit] Node.jsoperatesonasingle-threadeventloop,usingnon-blockingI/Ocalls,allowingittosupporttensofthousandsofconcurrentconnectionswithoutincurringthecostofthreadcontextswitching.[71]Thedesignofsharingasinglethreadamongalltherequeststhatusetheobserverpatternisintendedforbuildinghighlyconcurrentapplications,whereanyfunctionperformingI/Omustuseacallback.Toaccommodatethesingle-threadedeventloop,Node.jsusesthelibuvlibrary—which,inturn,usesafixed-sizedthreadpoolthathandlessomeofthenon-blockingasynchronousI/Ooperations.[7] AthreadpoolhandlestheexecutionofparalleltasksinNode.js.Themainthreadfunctioncallpoststaskstothesharedtaskqueue,whichthreadsinthethreadpoolpullandexecute.Inherentlynon-blockingsystemfunctionssuchasnetworkingtranslatetokernel-sidenon-blockingsockets,whileinherentlyblockingsystemfunctionssuchasfileI/Oruninablockingwayontheirownthreads.Whenathreadinthethreadpoolcompletesatask,itinformsthemainthreadofthis,whichinturn,wakesupandexecutestheregisteredcallback. Adownsideofthissingle-threadedapproachisthatNode.jsdoesnotallowverticalscalingbyincreasingthenumberofCPUcoresofthemachineitisrunningonwithoutusinganadditionalmodule,suchascluster,[51]StrongLoopProcessManager,[72]orpm2.[73]However,developerscanincreasethedefaultnumberofthreadsinthelibuvthreadpool.Theserveroperatingsystem(OS)islikelytodistributethesethreadsacrossmultiplecores.[74]Anotherproblemisthatlong-lastingcomputationsandotherCPU-boundtasksfreezetheentireevent-loopuntilcompletion.[citationneeded] V8[edit] Mainarticle:V8(JavaScriptengine) V8istheJavaScriptexecutionenginewhichwasinitiallybuiltforGoogleChrome.Itwasthenopen-sourcedbyGooglein2008.WritteninC++,V8compilesJavaScriptsourcecodetonativemachinecodeatruntime.[7]Asof2016,italsoincludesIgnition,abytecodeinterpreter. Packagemanagement[edit] npmisthepre-installedpackagemanagerfortheNode.jsserverplatform.ItinstallsNode.jsprogramsfromthenpmregistry,organizingtheinstallationandmanagementofthird-partyNode.jsprograms.PackagesinthenpmregistrycanrangefromsimplehelperlibrariessuchasLodashtotaskrunnerssuchasGrunt. UnifiedAPI[edit] Node.jscanbecombinedwithabrowserwithyoursite,adatabasethatsupportsJSONdata(suchasPostgres,[75]MongoDB,orCouchDB)andJSONforaunifiedJavaScriptdevelopmentstack.Withtheadaptationofwhatwereessentiallyserver-sidedevelopmentpatternssuchasMVC,MVP,MVVM,etc.,Node.jsallowsthereuseofthesamemodelandserviceinterfacebetweenclientsideandserverside. Eventloop[edit] Node.jsregisterswiththeoperatingsystemsotheOSnotifiesitofconnectionsandissuesacallback.WithintheNode.jsruntime,eachconnectionisasmallheapallocation.Traditionally,relativelyheavyweightOSprocessesorthreadshandledeachconnection.Node.jsusesaneventloopforscalability,insteadofprocessesorthreads.[76]Incontrasttootherevent-drivenservers,Node.js'seventloopdoesnotneedtobecalledexplicitly.Instead,callbacksaredefined,andtheserverautomaticallyenterstheeventloopattheendofthecallbackdefinition.Node.jsexitstheeventloopwhentherearenofurthercallbackstobeperformed. WebAssembly[edit] Node.jssupportsWebAssemblyandasofNode14hasexperimentalsupportofWASI,theWebAssemblySystemInterface. Nativebindings[edit] Node.jsprovidesawaytocreate"add-ons"viaaC-basedAPIcalledN-API,whichcanbeusedtoproduceloadable(importable).nodemodulesfromsourcecodewritteninC/C++.[77]ThemodulescanbedirectlyloadedintomemoryandexecutedfromwithinJSenvironmentassimpleCommonJSmodules.TheimplementationoftheN-APIreliesoninternalC/C++Node.jsandV8objectsrequiringuserstoimport(#include)Node.jsspecificheadersintotheirnativesourcecode.[77]AstheNode.jsplatformconstantlyevolves,theAPIcompatibilityissubjecttochanges,andmaysometimesgetbrokenbyanewversion(asaconsequence,moduleshavetobebuiltagainstspecificNode.jsversionstoworkcorrectly).Toaddresstheissue,thirdpartieshaveintroducedopen-sourcedС/С++wrappersontopoftheAPIthatpartiallyalleviatetheproblem.Theysimplifyinterfaces,butasasideeffecttheymayalsointroducecomplexitywhichmaintainershavetodealwith.EventhoughthecorefunctionalityofNode.jsresidesinaJavaScriptbuilt-inlibrary,moduleswritteninC++canbeusedtoenhancecapabilitiesandtoimproveperformanceofapplications. InordertoproducesuchmodulesoneneedstohaveanappropriateC++compilerandnecessaryheaders(thelatteraretypicallyshippedwithNode.jsitself):gcc,clangorMSVC++. TheN-APIissimilartoJavaNativeInterface. Projectgovernance[edit] In2015,variousbranchesofthegreaterNode.jscommunitybeganworkingunderthevendor-neutralNode.jsFoundation.Thestatedpurposeoftheorganization"istoenablewidespreadadoptionandhelpacceleratedevelopmentofNode.jsandotherrelatedmodulesthroughanopengovernancemodelthatencouragesparticipation,technicalcontribution,andaframeworkforlong-termstewardshipbyanecosysteminvestedinNode.js'success."[78] TheNode.jsFoundationTechnicalSteeringCommittee(TSC)isthetechnicalgoverningbodyoftheNode.jsFoundation.TheTSCisresponsibleforthecoreNode.jsrepoaswellasdependentandadjacentprojects.GenerallytheTSCdelegatestheadministrationoftheseprojectstoworkinggroupsorcommittees.[79]TheLTSgroupthatmanageslongtermsupportedreleasesisonesuchgroup.OthercurrentgroupsincludeWebsite,Streams,Build,Diagnostics,i18n,Evangelism,Docker,AddonAPI,Benchmarking,Post-mortem,Intl,Documentation,andTesting.[80] InAugust2017,athirdoftheTSCmembersresignedduetoadisputerelatedtotheproject'scodeofconduct.[81] Seealso[edit] Deno—aback-endruntimeenvironmentforJavaScriptandTypeScript,alsocreatedbyRyanDahl. References[edit] ^"node-v0.x-archiveonGitHub".GitHub.Retrieved2August2014. ^https://github.com/nodejs/node/releases/tag/v18.9.1. ^ab"nodejs/node".GitHub.13April2022. ^"node/LICENSEatmaster".GitHub.Node.jsFoundation.17September2018.Retrieved17September2018. ^"TheMITLicense".OpenSourceInitiative.17September2018.Retrieved17September2018. ^gcuomo(24October2013)."JavaScriptEverywhereandtheThreeAmigos(IntothewildBLUEyonder!)".www.ibm.com.Retrieved24October2013. ^abcLaurentOrsini(7November2013)."WhatYouNeedToKnowAboutNode.js".readwrite.com.Retrieved6February2022. ^"Node.jsFoundation-Node.js".nodejs.org.Retrieved4July2015. ^"LinuxFoundationCollaborativeProjects".linuxfoundation.org.4July2015.Retrieved4July2015. ^WhyGoDaddy'sNodejitsudealisgreatforNode.js,VentureBeat,10February2015 ^Geitgey,Adam(30October2013)."I-Tier:DismantlingtheMonoliths".Groupon.Archivedfromtheoriginalon10September2015.Retrieved30April2014. ^"IBMBluemix".IBM.Retrieved4July2015. ^"You'llneverbelievehowLinkedInbuiltitsnewiPadapp".VentureBeat.2May2012.Retrieved10May2012. ^"Blazingfastnode.js:10performancetipsfromLinkedInMobile".Retrieved7April2015. ^Baxter-Reynolds,Matthew(9November2011)."Here'swhyyoushouldbehappythatMicrosoftisembracingNode.js".TheGuardian.London.Retrieved10May2012. ^"WebMatrix-FrontEndWebDeveloperstakenote(ASP.NET,PHP,node.jsandmore)".Retrieved2August2014. ^Node.jsinFlames19November2014 ^"ClashoftheTitans:ReleasingtheKraken,NodeJS@paypal".fluentconf.com.28May2013.Archivedfromtheoriginalon15December2021.Retrieved11September2013. ^"AllsuchcompaniesandtheirproductsinwhichNode.jsisused".GitHub.Retrieved2August2014. ^"SAPAppBuilder".SAP.10March2014.Archivedfromtheoriginalon12February2014.Retrieved10October2018. ^"WhyWalmartisusingNode.js".VentureBeat.24January2012.Retrieved10May2012. ^"WhyYouReallyNeed(A)node.jsdevelopmentservices".codebrahma.10January2018.Retrieved10January2018. ^"DeployaNode.jsWebApp-LaunchandrunahighlyavailableNode.jswebapplicationonAWS".amazon.com.Retrieved3October2020. ^"AboutNode.js,andwhyyoushouldaddNode.jstoyourskillset?".Training.com.Training.com.11September2016.Retrieved23October2016. ^Staff,CNETNews(15October1996)."Netscapeopensintranetattack".CNET.Retrieved20April2017. ^RyanDahl(9November2010)."JoyentandNode".GoogleGroups.Retrieved5February2015. ^Garbar,Dzmitry."PHP7vsNode.js?TheyCanBePartners,NotCompetitorsForaDeveloper!".belitsoft.com.Retrieved21December2016. ^abcdSamsTeachYourselfNode.jsin24Hours,SamsPublishing,05-Sep-2012 ^Ubl,Malte(9September2009)."JSConf.eu2009,Berlin,Germany".www.jsconf.eu.Retrieved9September2009. ^"RyanDahl:OriginalNode.jspresentation".Archivedfromtheoriginalon15December2021–viawww.youtube.com. ^abcdefghiProfessionalNode.js:BuildingJavaScriptBasedScalableSoftware,JohnWiley&Sons,01-Oct-2012 ^"Earliestreleasesofnpm".GitHub.Retrieved27July2016. ^Ryandahl(23June2011)."PortingNodetoWindowsWithMicrosoft'sHelp".nodejs.org.Retrieved17April2016. ^Dahl,Ryan."Newgatekeeper".Retrieved26October2013. ^Schlueter,Isaac(15January2014)."TheNextPhaseofNode.js".Retrieved21January2014. ^Krill,Paul(4December2014)."Whyio.jsDecidedtoForkNode.js".JavaWorld.Retrieved15December2014. ^Q&A:Whyio.jsdecidedtoforkNode.js,InfoWorldTechWatch ^BenNoordhuis(12November2014)."Issue3692:functionsuddenlybecomesundefined".V8JavaScriptEngineIssues.Retrieved2February2015. ^Mikeal,Rogers(28January2015)."Stateofio.js".Retrieved2February2015. ^"Node.jsFoundationAdvancesCommunityCollaboration,AnnouncesNewMembersandRatifiedTechnicalGovernance".Archivedfromtheoriginalon24June2015.Retrieved4July2015. ^"Node.jsFoundationCombinesNode.jsandio.jsIntoSingleCodebaseinNewRelease".nodejs.org.14September2015.Retrieved28January2016. ^"io.jsandNode.jsmerge".medium.com.19May2015.Retrieved27June2015. ^Io.js,JavaScriptI/O,"io.jshasmergedwiththeNode.jsprojectagain.Therewon'tbeanyfurtherio.jsreleases.Allofthefeaturesinio.jsareavailableinNode.jsv4andabove." ^"PreviousReleases".Node.js. ^abcNode.jsforPHPDevelopers,O'ReillyMedia,Inc.,2013 ^abcNode.jsEssentials,PacktPublishing,10-Nov-2015 ^SmashingNode.js:JavaScriptEverywhere,JohnWiley&Sons,14-Aug-2012 ^Modules,NodejsWebsite ^"ListoflanguagesthatcompiletoJS".Github. ^CoffeeScriptonNode.js.O'ReillyMedia,Inc.15April2013.ISBN 9781449316846.Retrieved17May2015. ^ab"Node.js'sclustermodule".nodejs.org.Retrieved19October2017. ^"Node.js'schild_processmodule".nodejs.org.Retrieved19October2017. ^Foundation,Nodejs."InstallingNode.jsviapackagemanager".Node.js.Retrieved19May2019. ^"bomBora-Node.jsforNonStop".infrasoft.com.au.Infrasoft.Retrieved14August2015. ^Express.jsGuide:TheComprehensiveBookonExpress.js,AzatMardan,28-May-2014 ^Edge.jsbridgesthegapbetweenNode.jsand.NET,TechRepublic,TonyPatton,1July2014 ^Node.js,WebStormsupportsintegrationwiththeNode.jsruntimeenvironment,WebStormHelp ^RunningandDebuggingNode.js,WebStormHelp ^"Node.jsToolsforVisualStudio".microsoft.com.Retrieved1February2016. ^soywiz/typescript-node-definitionsTypeScript'stypingsforsomepopularnode.jsmodules,GitHub ^DefinitelyTyped,GitHub ^"TherepositoryforhighqualityTypeScripttypedefinitions".definitelytyped.org.Archivedfromtheoriginalon3February2016. ^ImageBoard,ANode.js+Express+MongoDBapplicationbuiltusingTypeScriptontheserver,TypeScriptSamples ^Krill,Paul(10November2015)."Node.jstakescenterstageinNetBeans8.1".infoworld.com.InfoWorld.Retrieved10November2015. ^Nodeclipse,Enide--Node.JSdevelopmentinEclipse,NodeclipseWebsite ^HelloVisualStudioCode(withNodeJS),Channel9,Microsoft ^ Node.jsApplicationswithVSCode,VisualStudioCode ^"Releases".Node.js. ^abcdefgh"nodejs/Release".GitHub.Retrieved3May2018. ^BringingforwardtheEnd-of-LifeDateforNode.js16,Node.jsWebsite ^"Node.jsw/1Mconcurrentconnections!".caustik'sblog.19August2012. ^"StrongLoopProcessManager".strong-pm.io. ^"GitHub-Unitech/pm2:ProductionprocessmanagerforNode.jsapplicationswithabuilt-inloadbalancer".GitHub.12June2021. ^AleksanderKasiuk(22April2015)."Onproblemswiththreadsinnode.js-FutureProcessing". ^"PostgreSQL:Documentation:9.4:JSONTypes".www.postgresql.org.Retrieved20October2016. ^AboutNode.js,Node.jsWebsite ^ab"C++addons|Node.jsv14.12.0Documentation".nodejs.org.Retrieved26September2020. ^Foundation,Node.js."Node.jsFoundation|Node.js".nodejs.org.Retrieved8March2017. ^"nodejs/TSC".GitHub.Retrieved8March2017. ^Foundation,Node.js."WorkingGroups|Node.js".nodejs.org.Retrieved8March2017. ^Whittaker,Zack,Aftergovernancebreakdown,Node.jsleadersfightforitssurvival,ZDNet,25August2017 Furtherreading[edit] Hughes-Croucher,Tom;Wilson,Mike(April2012),UpandRunningwithNode.js,O'ReillyMedia,ISBN 978-1-4493-9858-3 Ornbo,George(September2012),SamsTeachYourselfNode.jsin24Hours,SAMSPublishing,ISBN 978-0-672-33595-2 Teixeira,Pedro(October2012),ProfessionalNode.js,JohnWiley&Sons,ISBN 978-1-118-22754-1 RandalL.SchwartzandAaronNewcomb(9January2013)."Episode237:Node.js".twit.tv/show/floss-weekly(Podcast).TWiT.tv.Eventoccursat1:08:13.Retrieved9January2013. Gackenheimer,Cory(October2013),Node.jsRecipes:AProblem-SolutionApproach,Apress,ISBN 978-1-4302-6058-5 Externallinks[edit] WikimediaCommonshasmediarelatedtoNode.js. Officialwebsite nodeonGitHub vteNode.jsPlatform Node.js NPM V8 CommonJS Frameworks MEAN MongoDB Express.js AngularJS/Angular MEEN(substitutedwithEmber.js) Backbone.js Meteor Sails.js(usesExpress.js) Next.js Libraries Lodash Underscore.js React.js Vue.js Languages JavaScript CoffeeScript TypeScript vteJavaScriptCodeanalysis ESLint JSHint JSLint Supersets JS++ Objective-J TypeScript Transpilers AtScript Babel ClojureScript CoffeeScript Dart Elm Emscripten GoogleClosureCompiler GoogleWebToolkit Haxe LiveScript Morfik Nim Opa PureScript Reason WebSharper Concepts Client-side JavaScriptlibrary JavaScriptsyntax Debuggers ChromeDevTools FirefoxInspector KomodoIDE MicrosoftEdgeDevTools OperaDevTools SafariWebInspector Docgenerators JSDoc Editors(comparison) Ace Cloud9IDE Atom CodeMirror Brackets LightTable PhpStorm Orion VisualStudio VisualStudioExpress VisualStudioCode VisualStudioTeamServices Vim Engines DOMsupport ListofECMAScriptengines Frameworks ComparisonofJavaScriptframeworks ListofJavaScriptlibraries Relatedtechnologies Ajax AssemblyScript asm.js CascadingStyleSheets DocumentObjectModel HTML HTML5 JSON WebAssembly WebAuthn Packagemanagers npm yarn Modulebundlers Webpack Server-side ActiveServerPages CommonJS Deno JSGI Node.js Wakanda Unittestingframeworks(list) Jasmine Jest Mocha QUnit People DouglasCrockford BrendanEich JohnResig AuthoritycontrolGeneral WorldCat(viaLibraryofCongress) Nationallibraries Germany Israel UnitedStates Retrievedfrom"https://en.wikipedia.org/w/index.php?title=Node.js&oldid=1112762437" Categories:2009softwareFreesoftwareprogrammedinC++FreesoftwareprogrammedinJavaScriptJavaScriptlibrariesJoyentLinuxFoundationprojectsSoftwareusingtheMITlicenseHiddencategories:ArticleswithshortdescriptionShortdescriptionmatchesWikidataAllarticleswithunsourcedstatementsArticleswithunsourcedstatementsfromMarch2017CommonscategorylinkfromWikidataArticleswithGNDidentifiersArticleswithJ9UidentifiersArticleswithLCCNidentifiersArticleswithWorldCat-LCCNidentifiersUsedmydatesfromNovember2019 Navigationmenu Personaltools NotloggedinTalkContributionsCreateaccountLogin Namespaces ArticleTalk English Views ReadEditViewhistory More Search Navigation MainpageContentsCurrenteventsRandomarticleAboutWikipediaContactusDonate Contribute HelpLearntoeditCommunityportalRecentchangesUploadfile Tools WhatlinkshereRelatedchangesUploadfileSpecialpagesPermanentlinkPageinformationCitethispageWikidataitem Print/export DownloadasPDFPrintableversion Inotherprojects WikimediaCommonsWikibooks Languages العربيةAsturianuAzərbaycancaবাংলাBân-lâm-gúБеларускаяБългарскиCatalàČeštinaDanskDeutschEestiΕλληνικάEspañolEuskaraفارسیFrançais한국어Հայերենहिन्दीBahasaIndonesiaItalianoעבריתКыргызчаLatviešuLombardMagyarമലയാളംBahasaMelayuNederlands日本語NorskbokmålOʻzbekcha/ўзбекчаPolskiPortuguêsRomânăРусскийSimpleEnglishکوردیСрпски/srpskiSuomiSvenskaTürkçeУкраїнськаاردوTiếngViệt中文 Editlinks



請為這篇文章評分?