当前位置: 代码迷 >> JavaScript >> Node.js学习总结
  详细解决方案

Node.js学习总结

热度:220   发布时间:2013-07-08 14:13:00.0
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

然后输入密码就可以了。

?

?

  相关解决方案