`
wenxin2009
  • 浏览: 320570 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

  • 大小: 157.5 KB
分享到:
评论

相关推荐

    Node.js MongoDB AngularJSWeb开发中文版.part1

    第2部分 学习Node.js 第3章 开始使用Node.js 35 3.1 了解Node.js 35 3.1.1 谁在使用Node.js 35 3.1.2 Node.js的用途 36 3.2 Node.js安装 36 3.2.1 纵观Node.js安装位置 36 3.2.2 验证Node.js可执行文件 37 3.2.3 ...

    node.js基础知识小结

    javascript之前一般用于web前段开发,然而由于node.js的出现,用javascript开发后端程序也不再是一件复杂的事情。node.js中js引擎来自于chrome v8浏览器,配合node.js额外开发的工具代码,本身使用起来非常容易,也...

    Node.js学习笔记1-快速开始

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。 对于云应用的快速开发,学习并熟练掌握Node已经是一项全栈开发工程师的必备技能。 我计划用一个月...

    小结Node.js中非阻塞IO和事件循环

    学习和使用Node.js一段时间后,开发者会逐渐体会到非阻塞IO和事件循环带来的优势。例如,在使用express框架结合mongoose操作MongoDB数据库时,开发者可以利用Node.js的非阻塞特性,使得数据库操作不会阻塞主线程,...

    node.js操作mongodb学习小结

    一、准备工作 1、在mongodb创建将要读取的表 创建数据库mongotest ...二、实例(node.js读取mongodb) 参考node-mongodb-native的文档:https://github.com/mongodb/node-mongodb-native 代码如下: var mongo

    Node.js程序中的本地文件操作用法小结

    Node.js作为JavaScript运行在服务器端的解释器,提供了一套丰富的API来处理本地文件系统的操作,其核心设计尽可能少地绑定操作系统的特性,而通过异步的、基于流的API来暴露这些功能,这使得Node.js在进行文件系统...

    Node.js 进程平滑离场剖析小结

    "Node.js 进程平滑离场剖析小结"这篇文章着重探讨了如何优雅地终止Node.js进程,以实现服务的无缝切换和升级。平滑离场的目标是避免中断服务,确保所有待处理的请求得到妥善处理,同时不接受新的请求,从而最大程度...

    nodejs安装及环境配置

    小结 至此,用户已经成功安装和配置了 Node.js 环境。现在用户可以开始使用 Node.js 和 npm 来开发和运行 JavaScript 应用程序了。请注意,Node.js 的安装和配置过程可能因操作系统和个人需求而有所不同。在进行...

    《Node在个人直播中的应用》-linkzhu.pdf

    ### 小结 Node.js 在个人直播领域的应用,不仅得益于其与JavaScript生态的无缝衔接,还在于它在异构系统中的通信能力。通过选择合适的协议和数据序列化方法,Node.js 可以有效地与各种服务集成,实现高效、稳定的...

    Node.js五大应用性能技巧小结(必须收藏)

    Node.js作为一款基于Chrome V8引擎的JavaScript运行环境,自从被创造出来之后,就在Web开发领域得到了广泛的应用。其出色的事件驱动、非阻塞I/O模型特别适合处理大量并发的网络请求,非常适合I/O密集型应用。本文将...

    Node.js 实现简单的接口服务器的实例代码

    ### 小结 通过上述知识点的讲解,可以得知Node.js不仅是一种高效的服务器端运行环境,同时也是一种灵活的开发工具。它能够通过简单的代码实现复杂的网络请求处理,使得开发者能够以JavaScript为唯一语言,构建从...

    修改node.js默认的npm安装目录实例

    #### 小结 本文详细介绍了如何修改Node.js默认的NPM安装目录,包括查看当前配置、创建新的安装目录、设置新路径以及测试新配置等步骤。通过这些步骤,我们可以更灵活地管理项目的依赖包,提高开发效率。希望本文能...

    门户部署指导手册_Linux内网部署nodejs.docx

    五、小结 本文档提供了在Linux系统上部署Node.js环境的步骤指南,涵盖了Node.js安装、环境变量设置、项目运行等方面的知识点。通过本文档,读者可以快速地安装和配置Node.js环境,实现高效的开发和部署。

Global site tag (gtag.js) - Google Analytics