`
wenxin2009
  • 浏览: 314371 次
  • 性别: 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操作mongodb学习小结

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

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

    学习和使用Node.js已经有两个月,使用express结合mongoose写了一个web应用和一套RESTful web api,回过头来看Node.js官网首页对Node.js的介绍:Node.js uses an event-driven, non-blocking I/O model that makes it...

    Node.js服务Docker容器化应用实践小结

    本篇不会讲解 Docker 命令的使用、安装等,因为在之前一篇文章一文零基础教你学会 Docker 入门到实践中也已经讲解的很详细了,不清楚的可以点击链接回头在重新看下,本篇重点是介绍 Node.js 项目如何进行 Docker ...

    Node.JS更改Windows注册表Regedit的方法小结

    注册表是windows操作系统中的一个核心数据库,这里介绍一些通过node.js操作注册表的几种方法,感兴趣的朋友参考下吧

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

    本文介绍了Node.js五大应用性能技巧,分享给大家,具体如下: 一、实现一个反向代理服务器 相比大多数应用服务器,Node.js 可以很轻松的处理大量的网络流量,但这并不是 Node.js 的设计初衷。 如果你有一个高流量的...

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

    主要介绍了Node.js程序中的本地文件操作用法小结,作为运行在服务器端的JavaScript解释器,Node中自然拥有操作本地文件的方法,需要的朋友可以参考下

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

    主要介绍了Node.js 进程平滑离场剖析小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Node与Express开发.pdf

    3.4 小结 ........................................................................................................................................... 25 第 4 章 工欲善其事,必先利其器.....................

    node.js使用require()函数加载模块

    详细说明均以写在注释之中,这里就不啰嗦了,小伙伴们自己详细看吧,千万别吧注释当成空气了。 代码如下: /*在node中,可以使用require()函数来加载模块.  * require函数使用一个参数,参数值可以带有完整路径的模块...

    dana:无API的数据库架构迁移库(node.js)

    dana是用JavaScript(node.js)编写的简单,小型且与框架无关的数据库架构迁移实用程序(CLI)。 dana就像git一样工作。 它跟踪用户定义的模型(代表数据库表的简单JavaScript对象)中的更改,并生成迁移文件。 ...

    pg-promise:Node.js的PostgreSQL接口

    用于Node.js的PostgreSQL接口 关于 该库建立在之上,添加了以下内容: 自动连接 自动交易 强大的查询格式引擎+查询生成 声明式方法来处理查询结果 全局事件报告以进行集中处理 对外部SQL文件的广泛支持 支持所有...

Global site tag (gtag.js) - Google Analytics