Node.js学习小结

Nodejs作为服务端Javascript。它的最大特点是采用异步式I/O与事件驱动的架构设计。对于高并发的解决方案,传统的架构是多线程模型,也就是为每个业务逻辑提供一个系统线程,通过系统线程切换来弥补同步式I/O调用时的时间开销。Node.js使用的是单线程模型,对于所有I/O都采用异步式的请求方式,避免频繁的上下文切换

下载地址:http://nodejs.org/download/

学习教程:   Nodejs开发指南

以下以mac为例,下载Mac版的pkg,然后进行安装。

例1.简单应用

创建一个js,并用node运行它。helloworld.js内容为console.log("Hello World");

然后运行helloworld.js,命令如下:node helloworld.js

 

例2.web应用

创建一个server.js文件,内容为:

var http = require("http");

http.createServer(function(request,response){

response.writeHead(200,{"Content-Type":"text/plain"});

response.write("Hello World");

response.end();}).listen(8888);

然后启动服务:node server.js

 

例3.同步和异步读文件

bteki-MacBook-Pro:nodeFile b$ node readfile.js 

end.

This is good girl.so you must...

 

bteki-MacBook-Pro:nodeFile b$ vi readfilesync.js

bteki-MacBook-Pro:nodeFile b$ cat readfile.js 

var fs = require('fs');

fs.readFile('file.txt','utf-8',function(err,data){

if(err){

 console.error(err);

}else{

 console.log(data);

}

});

console.log('end.');

bteki-MacBook-Pro:nodeFile b$ node readfilesync.js 

This is good girl.so you must...

 

end.

bteki-MacBook-Pro:nodeFile b$ cat readfilesync.js 

var fs=require('fs');

var data=fs.readFileSync('file.txt','utf-8');

console.log(data);

console.log('end.');

=========================================================

1、由于nodejs是单线程,当主线程异常时,会导致整个进程挂掉。forever可以解决该问题,它

将确保永远运行。线程死亡时,会自动重启。

 

$ sudo npm install forever -g   #安装
$ forever start app.js          #启动
$ forever stop app.js           #关闭
$ forever start -l forever.log -o out.log -e err.log app.js   #输出日志和错误

相关网站:

https://github.com/nodejitsu/forever

http://www.bishen.org/content/25925993071

启动时报异常:

 

[root@test pushserver]# forever start -l forever.log -o out.log -e err.log debug.js

info:    Forever processing file: debug.js

error:   Cannot start forever

error:   log file /root/.forever/forever.log exists. Use the -a or --append option to append log.

 

解决方法:

 

[root@test pushserver]# forever start -a -l forever.log -o out.log -e err.log debug.js

 

 

==============以下为Node.js开发指南学习======================

第三章 模块和包

1、Node.js提供了exports和require两个对象,其中exports是模块公开接口,require用于从外部

获取一个模块的接口,即获取模块的exports对象。

例:

 

bteki-MacBook-Pro:nodeFile b$ cat module.js 

 

var name;

 

exports.setName=function(theName){

 

name=theName;

 

};

 

 

 

exports.sayHello=function(){

 

console.log('Hello '+name);

 

};

 

bteki-MacBook-Pro:nodeFile b$ cat getmodule.js 

 

var myModule=require('./module');

 

myModule.setName('Dwen');

 

myModule.sayHello();

 

bteki-MacBook-Pro:nodeFile b$ node getmodule.js 

 

Hello Dwen

 

 第五章 使用Node.js进行web开发

1、安装Express框架

参考:http://www.zikercn.com/node/11

在安装时碰到以下问题:



解决方法把用户切到root再进行安装就解决了。

切换root用户命令为:sudo su

然后输入密码就可以了。

 

 ================================================================================

解决国内NPM安装慢的问题:

npm install -gd express --registry=http://registry.npm.taobao.org

 

可使用–registry参数指定镜像服务器地址,为了避免每次安装都需要--registry参数,可以使用如下命令进行永久设置:

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

 

安装bower依赖包:

 

bower install --allow-root

 

nodemon 的安装:

npm install -g nodemon

nodemon启动:

nodemon app.js

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值