Node.js简单学习
2013-12-16 09:23
543 查看
一、安装、编译、测试执行
在linux下安装之前,必须先安装开发包
yum -y install gcc gcc-c++
yum -y python
yum -y openssl openssl-devel
wget ....node.tar.gz
下载的包有两种,一种是编译好的直接使用
mv nodexxx /usr/local/node
ln -s /usr/local/node/bin/node
另外一种是需要编译的
./configure --prefixe=/usr/local/node
make && make install
ln -s /usr/local/node/bin/node
新增hello.js
node hello.js //输出 Hello World
也可
还可以使用命令模式即:
二、建立HTTP服务器
创建一个服务脚本
node app.js
访问http://domian:3000
就可以了
在实际的开发中,我们需要在不停止服务的情况下更改,这里就需要一个插件supervisor,
supervisor就是监控你代码的更改并重启服务
npm install -g supervisor
安装完成之后,在/usr/local/node/bin下面就有一个supervisor的命令
执行
supervisor app.js
当我们修改时,它就会自动的重启
三、异步式I/O与事件式编程
node.js异步读取文件
在看一个同步读取
Node.js所有的异步I/O操作在完成时都会发送一个事件到事件队列。
事件由EventEmitter对象提供,上面用到的fs.readFile和http.createServer的回调都是通过EventEmitter来是现实的
看一个例子
上面的原理是:
event对象注册了事件some_sevent的一个监听器
通过setTimeout在1000毫秒以后向event对象发送事件some_event,此时会调用some_event的监听器
四、模块和包
模块(Module)和包(Package)是Node.js最重要的支柱。开发一个具有一定规模的程序不可能只用一个文件,通常需要把各个功能才分、封装,然后组合起来,模块正是为了实现这种方式诞生的。Node.js提供了require函数来调用其他模块,而且模块都是基于文件的,机制十分简单。
1、什么是模块
模块是Node.js应用程序的基本组成部分,文件和模块是一一对应的。一个Node.js文件对应一个模块
如 var http = require('http')
2、创建模块和加载模块
看一个例子: modeule.js
在同一目录下
3、覆盖exports
有的时候,我们指向把一个对象封装到模块中
hello.js
按照上面的方法,我们使用的时候就必须
var hello = require('./hello').Hello
我们只需要
exports.Hello = Hello改为 module.exports = Hello;
var hello = require('./hello');
hello = new Hello(); hello.setName('tianhu.peng'); hello.sayHello();
5、创建包
包就是模块的升级,也相当于C的函数库的概念
Node.js的包是一个目录,包含各种文件和说明文件
下面,我们自己创建一个包
1)创建一个mypackage的包的文件夹
2)在mypackage下创建index.js // 内容 exports.hello = function(){ console.log('Hello okhqb'); };
3) 在同mypackage目录下创建test.js
var p = require('./mypackage'); p.hello(); //输出 Hello okhqb
4) 进一步深入,加入package.json //在mypackeage目录下
{
"main" : "./lib/interface.js" //将index.js重命名并放入lib下
}
Node.js在调用某个包时,会首先检查包中的package.json,去寻找main 如果没有再查找index.js
6、包管理器,上面我们使用了npm install -g supervisor安装,npm就是Node.js官方提供的包管理工具。
1)获取一个包
npm [install/i] package_name 例如我们需要安装express
npm install express 或者 npm i express; z只要你会yum,这个不难理解
2)本地模式和全局模式
npm install express是本地模式
npm install -g supervisor是全局模式。所有应用都可以使用
3)理解ln -s吗,这里也可以做到创建全局连接
npm link express ./node_modules/express -> /usr/local/lib/node_modules/express
7、调试Node.js;最好使用成熟的IDE调试,比如Eclipse;这里我们主要的工作环境是linux,所以介绍linux下调试
很简单
node debug debug.js就可以了,关于调试命令可以参考node.js的帮助文档,个人建议使用eclipse
上面只是简单的说了下nodejs中一般知识,后续会有更加详细的教程。
在linux下安装之前,必须先安装开发包
yum -y install gcc gcc-c++
yum -y python
yum -y openssl openssl-devel
wget ....node.tar.gz
下载的包有两种,一种是编译好的直接使用
mv nodexxx /usr/local/node
ln -s /usr/local/node/bin/node
另外一种是需要编译的
./configure --prefixe=/usr/local/node
make && make install
ln -s /usr/local/node/bin/node
新增hello.js
console.log('Hello World!');
node hello.js //输出 Hello World
也可
node -e "console.log('Hello World!)"
还可以使用命令模式即:
二、建立HTTP服务器
创建一个服务脚本
http.createServer(function(req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.write('<h1>Node.js Tianhu.peng</h1>'); res.end('<p>Hello World</p>'); }).listen(3000); console.log("HTTP server is listening at port 3000.");
node app.js
访问http://domian:3000
就可以了
在实际的开发中,我们需要在不停止服务的情况下更改,这里就需要一个插件supervisor,
supervisor就是监控你代码的更改并重启服务
npm install -g supervisor
安装完成之后,在/usr/local/node/bin下面就有一个supervisor的命令
执行
supervisor app.js
当我们修改时,它就会自动的重启
三、异步式I/O与事件式编程
node.js异步读取文件
var fs = require('fs'); fs.readFile('text.txt', 'utf-8', function(err, data) { if (err) { console.error(err); } else { console.log(data); } }); console.log('end.'); // 运行结果 end. this is a io node test
在看一个同步读取
var fs = require('fs'); var data = fs.readFileSync('text.txt', 'utf-8'); console.log(data); console.log('end.'); // 运行结果 this is a io node test end.
Node.js所有的异步I/O操作在完成时都会发送一个事件到事件队列。
事件由EventEmitter对象提供,上面用到的fs.readFile和http.createServer的回调都是通过EventEmitter来是现实的
看一个例子
var EventEmitter = require('events').EventEmitter; var event = new EventEmitter; event.on('some_event', function() { console.log('some_event occured'); }); setTimeout(function() { event.emit('some_event'); }, 1000);
上面的原理是:
event对象注册了事件some_sevent的一个监听器
通过setTimeout在1000毫秒以后向event对象发送事件some_event,此时会调用some_event的监听器
四、模块和包
模块(Module)和包(Package)是Node.js最重要的支柱。开发一个具有一定规模的程序不可能只用一个文件,通常需要把各个功能才分、封装,然后组合起来,模块正是为了实现这种方式诞生的。Node.js提供了require函数来调用其他模块,而且模块都是基于文件的,机制十分简单。
1、什么是模块
模块是Node.js应用程序的基本组成部分,文件和模块是一一对应的。一个Node.js文件对应一个模块
如 var http = require('http')
2、创建模块和加载模块
看一个例子: modeule.js
var name; exports.setName = funciton(thyName) { name = thyName; }; exports.sayHello = function() { console.log("Hello " + name); };
在同一目录下
var myModule = require('./module'); myModeule.setName('tianhu.peng'); myModeule.sayHello(); // 输出 Hello tianhu.peng注意:require是单次加载模块,也就是说只加载一次
3、覆盖exports
有的时候,我们指向把一个对象封装到模块中
hello.js
function Hello() { var name; this.setName = function (theName) { name = theName; }; this.sayHello = funciton() { console.log('Hello ' + name); }; }; exports.Hello = Hello
按照上面的方法,我们使用的时候就必须
var hello = require('./hello').Hello
我们只需要
exports.Hello = Hello改为 module.exports = Hello;
var hello = require('./hello');
hello = new Hello(); hello.setName('tianhu.peng'); hello.sayHello();
5、创建包
包就是模块的升级,也相当于C的函数库的概念
Node.js的包是一个目录,包含各种文件和说明文件
下面,我们自己创建一个包
1)创建一个mypackage的包的文件夹
2)在mypackage下创建index.js // 内容 exports.hello = function(){ console.log('Hello okhqb'); };
3) 在同mypackage目录下创建test.js
var p = require('./mypackage'); p.hello(); //输出 Hello okhqb
4) 进一步深入,加入package.json //在mypackeage目录下
{
"main" : "./lib/interface.js" //将index.js重命名并放入lib下
}
Node.js在调用某个包时,会首先检查包中的package.json,去寻找main 如果没有再查找index.js
6、包管理器,上面我们使用了npm install -g supervisor安装,npm就是Node.js官方提供的包管理工具。
1)获取一个包
npm [install/i] package_name 例如我们需要安装express
npm install express 或者 npm i express; z只要你会yum,这个不难理解
2)本地模式和全局模式
npm install express是本地模式
npm install -g supervisor是全局模式。所有应用都可以使用
3)理解ln -s吗,这里也可以做到创建全局连接
npm link express ./node_modules/express -> /usr/local/lib/node_modules/express
7、调试Node.js;最好使用成熟的IDE调试,比如Eclipse;这里我们主要的工作环境是linux,所以介绍linux下调试
很简单
node debug debug.js就可以了,关于调试命令可以参考node.js的帮助文档,个人建议使用eclipse
上面只是简单的说了下nodejs中一般知识,后续会有更加详细的教程。
相关文章推荐
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
- node.js非常简单实现登录注册功能-学习小demo
- Node.js学习-----------搭建一个简单的HTTP服务器
- (NodeJS学习文章收集三) node.js基于express框架搭建一个简单的注册登录Web功能
- node.js学习之用路由方法获取简单的图文html页面
- Node.js学习笔记(4)--简单路由,老师学生id
- Node.js学习(2) Express创建简单网站过程
- node.js 学习笔记003 :使用superagent和cheerio实现简单网页爬虫
- Node.js 简单学习
- node.js学习之webpack打包react最简单用法
- 学习用node.js建立一个简单的web服务器
- Node.js的学习日记 图片简单下载和拷贝功能的实现 简单下载和拷贝
- node.js学习笔记(二)--使用mongoose简单的CRUD操作及测试模块mocha的使用
- Node.js的学习日记 简单的登录系统 node.js的简单登录系统
- Node.js 学习笔记--- (2)创建一个简单的博客工程
- Node.js学习笔记(3) - 简单的curd
- node.js学习笔记(4)--使用Express完成简单的登陆
- Node.js的学习历程六http的简单理解
- Node.js学习--搭建一个简单的带有get/post接口的服务
- node.js在windows下的学习笔记(2)---简单熟悉一些命令