node.js是一个基于Chrome V8引擎的JavaScirpt运行环境。
' Node 公开宣称的目标是 “旨在提供一种简单的构建可伸缩网络程序的方法”。当前的服务器程序有什么问题?我们来做个数学题。在 Java 和 PHP 这类语言中,每个连接都会生成一个新线程,每个新线程可能需要 2 MB 的配套内存。在一个拥有 8 GB RAM 的系统上,理论上最大的并发连接数量是 4,000 个用户。随着您的客户群的增长,如果希望您的 Web 应用程序支持更多用户,那么,您必须添加更多服务器。当然,这会增加服务器成本、流量成本和人工成本等成本。除这些成本上升外,还有一个潜在技术问题,即用户可能针对每个请求使用不同的服务器,因此,任何共享资源都必须在所有服务器之间共享。鉴于上述所有原因,整个 Web 应用程序架构(包括流量、处理器速度和内存速度)中的瓶颈是:服务器能够处理的并发连接的最大数量。
Node 解决这个问题的方法是:更改连接到服务器的方式。每个连接发射一个在 Node 引擎的进程中运行的事件,而不是为每个连接生成一个新的 OS 线程(并为其分配一些配套内存)。Node 声称它绝不会死锁,因为它根本不允许使用锁,它不会直接阻塞 I/O 调用。Node 还宣称,运行它的服务器能支持数万个并发连接。
打开方式:Win键+R键 输入cmd打开控制台
盘符名称+冒号——盘符切换 dir——查看当前路径下的文件列表
cd目录——进入单级目录 (tab补足目录名称)
cd..——回退到上一级目录 cd 目录一\目录二\...——进入多级目录
cd\——回退到盘符目录 cls——清屏
exit——退出命令提示符窗口 calc——启动计算机
cleanmgr——启动磁盘清理 notepad——启动记事本
magnify——启动放大镜 mspaint——启动画图板
osk——启动屏幕键盘
npm(全称是Node Package Manager),它基于Node.js使用JavaScript语言开发的,npm的操作原理是各个官网使用npm publish把代码提交到npm的服务器。
npm的思路大概是这样的:
1.买个服务器作为代码仓库(repository),在里面放所有需要被共享的代码
2.发邮件通知 jQuery 、Bootstrap 、Underscore 的作者使用 npm publish 把代码提交到 repository 上,分别取名 jquery、bootstrap 和 underscore(注意大小写)
3.社区里的其他人如果想使用这些代码,就把 jquery、bootstrap 和 underscore 写到 package.json 里,然后运行 npm install ,npm 就会帮他们下载代码
4.下载完的代码出现在 node_modules 目录里,就可以随意使用了。
也就是初始化一个包管理工具 它的文件名是 package.json 使用的代码是 npm init 通过它你可以初始化包的版本 包名 等等包相关的信息(执行命令npm init
初始化项目生成package.json)。
【npm install xxx】利用 npm 安装xxx模块到当前命令行所在目录;
【npm install -g xxx】利用npm安装全局模块xxx;
【npm install xxx】安装但不写入package.json;
【npm install xxx –save】 安装并写入package.json的”dependencies”中;
【npm install xxx –save-dev】安装并写入package.json的”devDependencies”中。
【npm uninstall xxx】删除xxx模块;
【npm uninstall -g xxx】删除全局模块xxx;
普通安装(本地安装):
npm install moduleName ,则是将模块下载到当前命令行所在目录。
全局安装:
npm install moduleName -g ,模块将被下载安装到全局目录中,即Node的安装目录下的node_modules下
在代码中,普通安装(本地安装)可以直接通过require()的方式引入;var moduleName = require('moduleName');
全局的安装是供命令行(command line)使用的,比如grunt,全局安装的方式是没有办法用require调用包的;