Node.JS——服务器端的js语言

Node.JS——服务器端的js语言

 

 
简介
Node.JS是服务器端运行的js。同类产品还有CommonJS,都是启动于2009年的服务器端js的实现。
其中CommonJS的一些思想对前端JS框架(函数库)亦有影响。
 
特色
和PHP不同的是,node.js提供的http服务并不需要apache/IIS来提供,你可以在js里指定监听的端口。
此外node.js仍保持了js的本色,事件驱动、无阻塞是node.js的特色,使用V8引擎,保障了较好的性能。
甚至可以用于HTTP长连接。
当然,对于php程序员编写node.js的时候最大的障碍也是对node.js事件驱动机制的理解,尽管可能熟练编写js。
 
数据库
node.js连接mysql仍旧是阻塞、需要等待mysql服务器的反应的,但是连接mongoDB是立即返回,得到数据后触发回调函数。
一个Node.js读取mongoDB并输出json数据 的demo
 

index.js

 
 
JavaScript代码
  1. var express = require('express');   
  2. var app = express.createServer();   
  3. var db = require('./tea/db');   
  4. db.open({dbName:'comments'});   
  5. app.get('/',function(req,res){   
  6.     db.findOne('comments',{},function(records){   
  7.         res.send(records);   
  8.     });   
  9. });   
  10. app.listen(8001);   

 /tea/index.js

 

JavaScript代码
  1. var tea = exports;   
  2. tea.hello = function(){   
  3.     console.log('hello world');   
  4. }   

/tea/db.js

 

JavaScript代码
  1. var mongo = require('mongodb');   
  2. var tea = tea || {};   
  3. tea.db = exports;   
  4. tea.db.server = '127.0.0.1';   
  5. tea.db.port = 27017;   
  6. tea.db.db = null;   
  7. tea.db.dbName = '';   
  8. tea.db.collection = '';   
  9. tea.db.open = function(mongoInfo,callback){   
  10.     this.dbName = mongoInfo.dbName;   
  11.     if(!this.db) this.db = new mongo.Db(mongoInfo.dbName, new mongo.Server('127.0.0.1', 27017, {}), {});   
  12.     this.db.open(function(err,db){   
  13.         this.db = db;   
  14.         if(callback) callback(db);   
  15.     });   
  16.     return this;   
  17. };   
  18. tea.db.find = function(collection,query,callback,isFindOne){   
  19.         this.db.collection(collection, function(err, collection) {   
  20.         var func = isFindOne ? 'findOne' : 'find';   
  21.         collection[func](query,function(err,cursor){   
  22.             if(!isFindOne) {   
  23.                             cursor.toArray(function(err,items){    
  24.                 if(callback) callback(items);   
  25.                 });   
  26.             }else{   
  27.                 if(callback) callback(cursor);   
  28.             }   
  29.         });   
  30.     });   
  31. }   
  32. tea.db.findOne = function(collection,query,callback){   
  33.     this.find(collection,query,callback,1);   
  34. }   
  35. tea.db.close = function(){   
  36.     if(tea.db.db) tea.db.db.close();   
  37. }   
  38. tea.db.hello = function(){   
  39.     console.log('Hello World');   
  40. }   
1、读取mongoDB的数据,简单封装node mongodb Native驱动
2、包含模块如何编写
3、把JSON数据数据返回给客户端
 
运行此源码必须
1、安装node mongodb native驱动
2、express js框架(不安装的话简单修改index.js即可)
3、安装了mongoDB,并且有comments数据库comments collection。collection里有数据。
如果名字不一样,进index.js就可以修改。端口必须是默认的。
3、node index.js,打开127.0.0.1:8001就可以看到返回了数据
 
 
框架
 
express js是一个node.js的框架,使用它可以让很多操作简化不少。
 
 
运行环境
nodejs的最佳运行环境是非win平台,但是仍旧可以通过cygwin来运行。
linux下的源码包在 http://nodejs.org/下载
windows: http://node-js.prcn.co.cc/

 

本文采用Creative Commons协议,复制本文需遵守三点:1、保留署名(链接);2、非商业性使用;3、再次创作的作品必须以相同的许可协议发布。

Tags: node.js

你可能感兴趣的:(Node.JS——服务器端的js语言)