初识Node.js

来源:互联网 发布:更改数据库所有者 编辑:程序博客网 时间:2024/06/04 18:28

  1. Node.js是什么?

Node.js不是一个独立的语言,与3P技术不同,也不是javascript框架,也不是javascript的框架,更不是浏览器的库ExtJs,不能与ExtJs相提并论,Node.js是一个让javascript运行在服务器端的开发平台

  1. Node.js能做什么

Javascript是由客户端而生,Node.js是为服务器端开发而生。

具有复杂逻辑的网站

基于社交网络的大Web的应用

Web Socket服务器

TCP/UDP套接字应用程序

命令行工具

交互式终端程序

  1. 异步式I/O与事件驱动

Node.js最大的特性是采用的异步I/O与事件驱动的架构设计。对于高并发的解决方案,传统的架构师多线程模型,也就是每个业务逻辑提供一个系统线程,通过系统线程切换来弥补同步式I/O调用时的事件开销,Node.js使用单线程模型,在执行的过程中会维护一个事件队列,程序在执行时进入事件循环等待下一个事件到来。

普通:res = db.query(“select * from users”)

Res.output();

Node.js  res=db.query(“select * from user”,function(res){

Res.output();

})

Node.js

Ext.Ajax.request({

         url:’action’,

sync:true //false表示同步

},function(response){

         alert(1)

})

alert(2)

 

安装:

  1. python 2.7+
  2. Node.js 一路next
  3. 设置环境变量(一般默认设置)例如:C/program files/nodejs
  4. 测试:

cmd->node->console.log(“Hello World”)


简单测试js文件
code:
var http = require("http");function process_request(req,res){ var body = 'Thanks for calling dingxiaowei\'s WebSide :\n'; var content_length = body.length; res.writeHead(200,{  'Content-length':content_length,  'Content-Type':'text/plain' }); res.end(body);}var s = http.createServer(process_request);s.listen(80)


运行:

浏览器测试效果:

配置启动web服务器
code
var http = require("http"), url = require("url"), path = require("path"), fs = require("fs"); http.createServer(function (req, res) { var pathname=__dirname+url.parse(req.url).pathname; if (path.extname(pathname)=="") { pathname+="/"; } if (pathname.charAt(pathname.length-1)=="/"){ pathname+="index.html"; } path.exists(pathname,function(exists){ if(exists){ switch(path.extname(pathname)){ case ".html": res.writeHead(200, {"Content-Type": "text/html"}); break; case ".htm": res.writeHead(200, {"Content-Type": "text/htm"}); break; case ".js": res.writeHead(200, {"Content-Type": "text/javascript"}); break; case ".css": res.writeHead(200, {"Content-Type": "text/css"}); break; case ".gif": res.writeHead(200, {"Content-Type": "image/gif"}); break; case ".jpg": res.writeHead(200, {"Content-Type": "image/jpeg"}); break; case ".png": res.writeHead(200, {"Content-Type": "image/png"}); break; default: res.writeHead(200, {"Content-Type": "application/octet-stream"}); } fs.readFile(pathname,function (err,data){ res.end(data); }); } else { res.writeHead(404, {"Content-Type": "text/html"}); res.end("<h1>404 Not Found</h1>"); } }); }).listen(8080); console.log("Server running at http://127.0.0.1:8080/");

启动服务器:

运行效果:


0 0
原创粉丝点击