node.js入门


1.安装


>>1.1.根据不同平台安装官方node.js安装包.

     安装包一般自带node package manager(npm).

     npm允许我们下载第三方功能模块,现在数量很多,上万的节奏。

     为npm更换到国内镜像源:

  npm config set registry http://registry.cnpmjs.org
      为npm更换到默认镜像源:

  npm config set registry http://registry.npmjs.org

    node.js通过npm安装包有两种方式,本地模式和全局模式。

        全局模式安装会被记入系统环境变量,但不能在代码中被require到。即加了参数-g

        本地模式安装好的包仅供当前应用调用。

        若已安装全局包,则可以通过link命令使全局包可以被require,如下

  npm link ./npm_modules/包名 /usr/local/npm_modules/包名(link暂不支持Windows)

>>1.2.安装node多版本管理器,允许开发者切换node运行版本。

   暂不支持Windows。

   本文介绍的多版本管理器就叫n。

   cmd运行:

npm install -g n
   安装完毕后。

   cmd运行:n <版本号>代表安装任意已发布的版本号的node.js。如果该版已安装,则代表切换node版本至该版本。不同版本API差异较大。

   如

n 0.7.5


2.创建http服务器


从官网下载node.js的安装包。

以下是创建一个http服务器并对所有http请求返回同一内容的代码:

var http = require('http');
http.createServer(function(req,res){
	res.writeHead(200, {'Content-Type':'text/html'});
	res.write("hello world");
	res.end();
}).listen(80);

在cmd下运行:

node <js文件名>
浏览器键入:localhost:80 查看效果

其中require函数简单理解为取一个功能模块。这里我们取得http模块。

http模块是node.js的一个核心模块,内部用C++编写,外部用javaScript封装。

node.js社区开发了大量的第三方模块,我们可以下载来用。


3.调试代码


>>3.1 Supervisor

node.js基于性能考虑,只会在第一次启动时解析脚本,之后全部从内存中加载,所以代码的改动必须重启node才会生效。

可以通过第三方模块supervisor实现node自动重启。

通过npm下载supervisor, cmd运行:

sudo npm install -g supervisor

安装完毕后,体验supervisor。

1.cmd运行:

supervisor <js文件名>
2.修改服务器中返回内容

3. supervisor自动重启

4.查看浏览器中返回内容


>>3.2 单步断点调试

V8引擎还提供了如在eclipse,VS中的单步断点调试功能,相当强大, CMD运行

node debug <js文件名>

进入debug模式,主要命令如下

next,n,执行下一步

step,s,执行下一步,会进入函数

out,o,跳出函数

setBreakPoint('文件名',行数),sb(‘文件名’,行数),在某个文件某个行数设置断点,也可以直接写行数,代表本文件某行数设置断点。

clearBreakPoint,cb(),清除所有断点。

cont,c,继续执行,直到遇到下一个断点

list(10),显示当前代码前后10行

watch('a'),将变量a加入监视列表

unwatch('a'),取消监视变量a

repl,打开即使求值环境

scripts,显示当前已加载所有脚本

restart,从头开始调试


>>3.3 远程调试实验。

1.我们可以在终端中输入

node --debug-brk <js文件名>
来启动远程调试,默认调试端口是5858

也可以

node --debug-brk=1234 <js文件名>

来指定调试端口为1234。

2.开启另一个终端,输入“node debug 127.0.0.1:1234”来进入远程调试。

3.在eclipse中安装chrome developer插件进行远程调试。

   插件地址如下: http://chromedevtools.googlecode.com/svn/update/dev/

   插件安装完毕后,用eclipse打开单个nodejs文件,点击进入debug configuration, 在左侧配置栏中找到Standard V8 VM,选中。

   选中后,单击左上角“new”按钮,新建一个V8 debug配置,输入相应configuration name, host和port。(host默认是本地)

   在命令行启动:

  node --debug-brk=[eclipse插件调试port] httpServer1.js
   node启动后, 单击eclipse中开启debug按钮。

4. 在chrome中调试

安装node-inspector包

npm install node-inspector -g//下载并安装node-inspector

node --debug-brk[=port] script.js//开启调试端口

在另一终端中输入node-inspector启动inspector,根据response指定的URL,

将该URL键入浏览器地址栏就可以通过chrome来调试node.js程序了。


4. 异步IO和同步IO结果比较


异步IO代码:

var fs = require('fs');
fs.readFile('log.txt', 'utf-8',function (err, data) {
	if (err) {
		throw err;
	}
	var txt = data.toString();
    console.log(txt);
});//异步读文件
console.log('end');
output:

end

文件txt内容

同步IO代码:

var fs = require('fs');
var data = fs.readFileSync("log.txt", "utf-8");
console.log(data);
console.log('end');
output:

文件txt内容

end

Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。


5. 自个儿知道的第三方模块


fs, node文件系统模块。

http, 用来收发http请求的模块。

request, 经过简化的http模块。

nimble,串行流程控制模块。


6. NodeJS中模块是单次加载的


建立模块module1.js

var name;

exports.setName = function(thaks) {
    name = thaks;
}

exports.sayHello = function() {
    console.log("Hello" + name);
}

读取模块module1.js

var module1 = require("./module1");
module1.setName("edmond");
var module2 = require("./module1");
module2.setName("edward");
module1.sayHello();


7. Express框架安装


npm install -g express

安装express环境变量

npm install -g express-generator





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值