编辑“︁
Node.js
”︁(章节)
跳转到导航
跳转到搜索
脚本错误:没有“Mainspace editnotice”这个模块。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
==技術== ===執行緒=== Node.js以單執行緒執行,使用非阻塞I/O呼叫,這樣既可以支援數以萬計的並行連線,又不會因多執行緒本身的特點而帶來麻煩。眾多請求只使用單執行緒的設計意味著可以用於建立高並行應用程式。Node.js應用程式的設計目標是任何需要操作I/O的函式都使用[[回调函数|回呼函式]]。 這種設計的缺點是,如果不使用cluster<ref>[https://nodejs.org/api/cluster.html cluster] {{Wayback|url=https://nodejs.org/api/cluster.html |date=20150818041503 }}</ref>、StrongLoop Process Manager<ref>[http://strong-pm.io/ StrongLoop Process Manager] {{Wayback|url=http://strong-pm.io/ |date=20150821153936 }}</ref>或pm2<ref>[https://github.com/Unitech/pm2 pm2] {{Wayback|url=https://github.com/Unitech/pm2 |date=20150810072440 }}</ref>等模組,Node.js就難以處理多核或多執行緒等情況。 ===V8=== {{Main|V8 (JavaScript引擎)}} [[V8 (JavaScript引擎)|V8]]是为[[Google Chrome]]设计的JavaScript运行引擎,Google于2008年将其开源。V8用C++写成,它将JavaScript源代码编译成本地[[机器码]]而不是解释执行。 Node.js用[[libuv]]来处理异步事件,而V8提供了JavaScript的实时运行环境。libuv是一个网络和文件系统功能的抽象层,既可以用于Windows又可以用于符合[[POSIX]]标准的系统,例如Linux、OS X和Unix。 Node.js的核心功能被包含进一个JavaScript库,并通过C++将各部分与操作系统进行联系。 === npm === {{Main|npm|l1=-{zh-cn: node包管理器; zh-tw: npm; zh-hk: npm;}-}} [[npm]]是Node.js附带的包管理器。npm是一个命令行工具,用于从NPM Registry中下载、安装Node.js程序,同时解决依赖问题。npm提高了开发的速度,因为它能够负责第三方Node.js程序的安装与管理。 ===统一API=== Node.js将浏览器、数据(例如[[MongoDB]]或[[CouchDB]])等组合到一起,通过[[JSON]]提供一个统一的接口。由于[[前端]]框架和一些基本的后端开发技术(如[[MVC]]、[[Model View Presenter|MVP]]、[[Model View ViewModel|MVVM]]等)变得流行,Node.js也支持客户端和服务器端重新利用相同的模型和接口。 ===事件循环=== Node.js将其注册到操作系统中,这样可以及时注意到新连接的产生。当新连接产生时,操作系统会产生一个回调。在Node.js运行时内部,每个连接都被分配一个小型的堆。与其他服务器程序不同的是,Node.js不使用进程或线程处理连接,而是采用事件循环来处理并发连接。<ref>[https://nodejs.org/about/ About Node.js] {{Wayback|url=https://nodejs.org/about/ |date=20150816092347 }} , Node.js Website</ref>而且Node.js的事件循环不需要手动调用。在回调函数定义之后,服务器进入事件循环。当回调函数均被执行完毕之后,Node.js结束事件循环。
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息