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
相关推荐
第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 ...
javascript之前一般用于web前段开发,然而由于node.js的出现,用javascript开发后端程序也不再是一件复杂的事情。node.js中js引擎来自于chrome v8浏览器,配合node.js额外开发的工具代码,本身使用起来非常容易,也...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。 对于云应用的快速开发,学习并熟练掌握Node已经是一项全栈开发工程师的必备技能。 我计划用一个月...
一、准备工作 1、在mongodb创建将要读取的表 创建数据库mongotest ...二、实例(node.js读取mongodb) 参考node-mongodb-native的文档:https://github.com/mongodb/node-mongodb-native 代码如下: var mongo
学习和使用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...
本篇不会讲解 Docker 命令的使用、安装等,因为在之前一篇文章一文零基础教你学会 Docker 入门到实践中也已经讲解的很详细了,不清楚的可以点击链接回头在重新看下,本篇重点是介绍 Node.js 项目如何进行 Docker ...
注册表是windows操作系统中的一个核心数据库,这里介绍一些通过node.js操作注册表的几种方法,感兴趣的朋友参考下吧
本文介绍了Node.js五大应用性能技巧,分享给大家,具体如下: 一、实现一个反向代理服务器 相比大多数应用服务器,Node.js 可以很轻松的处理大量的网络流量,但这并不是 Node.js 的设计初衷。 如果你有一个高流量的...
主要介绍了Node.js程序中的本地文件操作用法小结,作为运行在服务器端的JavaScript解释器,Node中自然拥有操作本地文件的方法,需要的朋友可以参考下
主要介绍了Node.js 进程平滑离场剖析小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
3.4 小结 ........................................................................................................................................... 25 第 4 章 工欲善其事,必先利其器.....................
详细说明均以写在注释之中,这里就不啰嗦了,小伙伴们自己详细看吧,千万别吧注释当成空气了。 代码如下: /*在node中,可以使用require()函数来加载模块. * require函数使用一个参数,参数值可以带有完整路径的模块...
dana是用JavaScript(node.js)编写的简单,小型且与框架无关的数据库架构迁移实用程序(CLI)。 dana就像git一样工作。 它跟踪用户定义的模型(代表数据库表的简单JavaScript对象)中的更改,并生成迁移文件。 ...
用于Node.js的PostgreSQL接口 关于 该库建立在之上,添加了以下内容: 自动连接 自动交易 强大的查询格式引擎+查询生成 声明式方法来处理查询结果 全局事件报告以进行集中处理 对外部SQL文件的广泛支持 支持所有...