Node.JS——服务器端的js语言
shiny 写于 2011-04-19 09:06:33. 后端那些事
简介
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代码
- var express = require('express');
- var app = express.createServer();
- var db = require('./tea/db');
- db.open({dbName:'comments'});
- app.get('/',function(req,res){
- db.findOne('comments',{},function(records){
- res.send(records);
- });
- });
- app.listen(8001);
/tea/index.js
JavaScript代码
- var tea = exports;
- tea.hello = function(){
- console.log('hello world');
- }
/tea/db.js
JavaScript代码
- var mongo = require('mongodb');
- var tea = tea || {};
- tea.db = exports;
- tea.db.server = '127.0.0.1';
- tea.db.port = 27017;
- tea.db.db = null;
- tea.db.dbName = '';
- tea.db.collection = '';
- tea.db.open = function(mongoInfo,callback){
- this.dbName = mongoInfo.dbName;
- if(!this.db) this.db = new mongo.Db(mongoInfo.dbName, new mongo.Server('127.0.0.1', 27017, {}), {});
- this.db.open(function(err,db){
- this.db = db;
- if(callback) callback(db);
- });
- return this;
- };
- tea.db.find = function(collection,query,callback,isFindOne){
- this.db.collection(collection, function(err, collection) {
- var func = isFindOne ? 'findOne' : 'find';
- collection[func](query,function(err,cursor){
- if(!isFindOne) {
- cursor.toArray(function(err,items){
- if(callback) callback(items);
- });
- }else{
- if(callback) callback(cursor);
- }
- });
- });
- }
- tea.db.findOne = function(collection,query,callback){
- this.find(collection,query,callback,1);
- }
- tea.db.close = function(){
- if(tea.db.db) tea.db.db.close();
- }
- tea.db.hello = function(){
- console.log('Hello World');
- }
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就可以看到返回了数据
框架
![](http://expressjs.com/images/logo.png)
express js是一个node.js的框架,使用它可以让很多操作简化不少。
运行环境
nodejs的最佳运行环境是非win平台,但是仍旧可以通过cygwin来运行。
linux下的源码包在
http://nodejs.org/下载
windows:
http://node-js.prcn.co.cc/
本文采用Creative Commons协议,复制本文需遵守三点:1、保留署名(链接);2、非商业性使用;3、再次创作的作品必须以相同的许可协议发布。