Node.js 服务器

分类:技术文档 - JS文档 | 阅读(3909) | 发布于:2014-03-07 09:07

index.js

var server = require("./server");
server.start();


server.js

var http = require("http");
var url = require("url");

function start() {
     function onRequest(request, response) {
          var act = url.parse(request.url,true).query.act;
          response.writeHead(200, {"Content-Type": "text/html"});
          response.write( "

Node.js测试

" );
          if( act==="undefined" || act==false ){
               response.write( "

未指定act参数

" );
          }else{
               response.write( "

act="+act+"

" );
          }
          response.end();
     }
     http.createServer(onRequest).listen(8888);
}
exports.start = start;


小技巧——使用 supervisor

    如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止 Node.js 再重新运行才会奏效。这是因为 Node.js 只有在第一次引用到某部份时才会去解析脚本文件,以后都会直接访问内存,避免重复载入,而 PHP 则总是重新读取并解析脚本(如果没有专门的优化配置)。Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因为我们在开发过程中总是希望修 改后立即看到效果,而不是每次都要终止进程并重启。 supervisor 可以帮助你实现这个功能,它会监视你对代码的改动,并自动重启 Node.js。使用方法很简单,首先使用       npm 安装 supervisor:
$ npm install -g supervisor
    如果你使用的是 Linux 或 Mac,直接键入上面的命令很可能会有权限错误。原因是 npm 需要把 supervisor 安装到系统目录,需要管理员授权,可以使用  sudo npm install -g supervisor 命令来安装。
    接下来,使用 supervisor 命令启动 app.js:
$ supervisor app.js 


1.保存 index.js 文件、server.js文件 到目录 c:/node 

2. Windows 安装 node-v0.10.22-x64.msi 

3. 运行 Node.js command prompt 
     c:
     cd c:/node 
     node index.js 

4. 浏览器运行 http://localhost:8888?act=test



app.js

var counter = 0;
var app = require('http').createServer(handler)
  , io = require('socket.io').listen(app)
  , fs = require('fs')

app.listen(8080);

function handler (req, res) {
     fs.readFile(__dirname + '/index.html',
     function (err, data) {
          if (err) {
               res.writeHead(500);
               return res.end('Error loading index.html');
          }
         
          res.writeHead(200,{'Content-Type':'text/html'});
          res.end(data,'utf-8');
     });
}

io.sockets.on('connection', function (socket) {
     counter++;
     socket.emit('test', { num: counter });
     socket.broadcast.emit('test', { num: counter });
    
     socket.on('sendmsg', function(data){
          socket.broadcast.emit('push_msg', data );
     });
    
     socket.broadcast.on('sendmsg', function(data){
          socket.broadcast.emit('push_msg', data );
     });
    
     socket.on('disconnect',function(){
          counter--;
          socket.broadcast.emit('test', { num: counter });
     });
    
    
});

index.html







    

    
 

    发送








标签: