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已经是一项全栈开发工程师的必备技能。 我计划用一个月...
学习和使用Node.js一段时间后,开发者会逐渐体会到非阻塞IO和事件循环带来的优势。例如,在使用express框架结合mongoose操作MongoDB数据库时,开发者可以利用Node.js的非阻塞特性,使得数据库操作不会阻塞主线程,...
一、准备工作 1、在mongodb创建将要读取的表 创建数据库mongotest ...二、实例(node.js读取mongodb) 参考node-mongodb-native的文档:https://github.com/mongodb/node-mongodb-native 代码如下: var mongo
Node.js作为JavaScript运行在服务器端的解释器,提供了一套丰富的API来处理本地文件系统的操作,其核心设计尽可能少地绑定操作系统的特性,而通过异步的、基于流的API来暴露这些功能,这使得Node.js在进行文件系统...
"Node.js 进程平滑离场剖析小结"这篇文章着重探讨了如何优雅地终止Node.js进程,以实现服务的无缝切换和升级。平滑离场的目标是避免中断服务,确保所有待处理的请求得到妥善处理,同时不接受新的请求,从而最大程度...
小结 至此,用户已经成功安装和配置了 Node.js 环境。现在用户可以开始使用 Node.js 和 npm 来开发和运行 JavaScript 应用程序了。请注意,Node.js 的安装和配置过程可能因操作系统和个人需求而有所不同。在进行...
### 小结 Node.js 在个人直播领域的应用,不仅得益于其与JavaScript生态的无缝衔接,还在于它在异构系统中的通信能力。通过选择合适的协议和数据序列化方法,Node.js 可以有效地与各种服务集成,实现高效、稳定的...
Node.js作为一款基于Chrome V8引擎的JavaScript运行环境,自从被创造出来之后,就在Web开发领域得到了广泛的应用。其出色的事件驱动、非阻塞I/O模型特别适合处理大量并发的网络请求,非常适合I/O密集型应用。本文将...
### 小结 通过上述知识点的讲解,可以得知Node.js不仅是一种高效的服务器端运行环境,同时也是一种灵活的开发工具。它能够通过简单的代码实现复杂的网络请求处理,使得开发者能够以JavaScript为唯一语言,构建从...
#### 小结 本文详细介绍了如何修改Node.js默认的NPM安装目录,包括查看当前配置、创建新的安装目录、设置新路径以及测试新配置等步骤。通过这些步骤,我们可以更灵活地管理项目的依赖包,提高开发效率。希望本文能...
五、小结 本文档提供了在Linux系统上部署Node.js环境的步骤指南,涵盖了Node.js安装、环境变量设置、项目运行等方面的知识点。通过本文档,读者可以快速地安装和配置Node.js环境,实现高效的开发和部署。