1.http 请求

//调用Node.js自带的http模块
var http = require("http");

//调用http模块提供的函数createServer
http.createServer(function(request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("nodejs test");
    response.end();
}).listen(3000);
//监听3000端口

这个是上篇文章,提供的一个实例.

1.它和asp.net 或者php不一样.需要一个宿主,比如iis,才能 呈现到浏览器

.Node.js 是直接把内容呈现到浏览器.

2.首先,它还可以这样写

//调用Node.js自带的http模块
var http = require("http");

//调用http模块提供的函数createServer
http.createServer(onRequest).listen(3000);
//监听3000端口

function onRequest (request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("nodejs test");
    response.end();
}
createServer()把onRequest当做方法传入参数中.这样写也是完全正确的,类似匿名函数3. 我们给莫个方法传递了一个函数,这个方法在有相对应的事件发生的时候,调用这个函数进行回调.onRequest就是回调函数Node.js是属于事件驱动.属于异步比如
var http = require("http");
http.createServer(onRequest).listen(3000);
function onRequest (request, response) {
    console.log("有访问.");
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("nodejs test");
    response.end();
}
console.log("服务开启.");

执行顺序应该是,下面的先输出.然后你刷新页面,请求onRequest方法.再输出上面的 ,看图

参数,
//当函数触发的时候,这2个参数,就是一个是请求,一个是相应请求.
//跟.net里面的request.和response 性质一样,下面只是用了response输出,
http.createServer(function(request, response) {

模块

var http = require("http");

Node.js 把http封装起来.变成一个模块

现在新建一个index的js.把刚才代码复制进去.

now.index.js内容如下

var http = require("http");

 function index(){
http.createServer(function(request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("nodejs ddtest");
    response.end();
}).listen(3000);
 }
exports.start =index;

exports.start  就是,把这个index的方法暴漏出去.

然后我们在原来的js里面 这样调用

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

这个跟调用Node.js 的http模块一致.

刷新下浏览器.工作正常.

如何来获得请求的“路由”

1.进行扩充下这个代码,引入url模块
var http = require("http");
var url = require("url");

function index(route){
        http.createServer(function(request, response) {
        var pathname=url.parse(request.url).pathname;
        console.log(pathname +"访问");
        response.writeHead(200, {"Content-Type": "text/plain"});
        response.write("nodejs test");
        response.end();
    }).listen(3000);
     console.log("服务开启");
 }
exports.start =index;

浏览器. http://localhost:3000/abc

就会打印出

/abc访问

这个是一个简单的获取url路由的简单demo

扩展路由.

在JavaScript中,对象就是一个键/值对的集合 -- 你可以把JavaScript的对象想象成一个键为字符串类型的字典。

新建一个requestHandlers的模块.

然后这里面有各个路由执行的方法

比如

function start() {
    console.log("start");
}
function upload() {
    console.log("upload");
}
exports.start = start;
exports.upload = upload;

然后引用它,

var requestHandler = require("./requestHandlers")

//  你可以把JavaScript的对象想象成一个键为字符串类型的字典。
   var handle={}
   handle["/"] = requestHandler.start;
   handle["/start"]=requestHandler.start;
   handle["/upload"]=requestHandler.upload;

router 更改为

function route(handle,pathname)
{
    console.log(pathname+"router 访问");

    if(typeof handle[pathname]=="function")
    {
        handle[pathname]();
    } else
    {
      console.log("no request handler found for" +pathname);
    }
}

exports.router = route;

这样的话.执行/upload.就到requesthandler里面方法了.

我写不下去了..还是看原文吧..

参考:http://www.nodebeginner.org/index-zh-cn.html


]]>

Node.js 入门(2)的更多相关文章

  1. Node.js 入门手册:那些最流行的 Web 开发框架

    这篇文章与大家分享最流行的 Node.js Web 开发框架.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用程序,编 ...

  2. 【特别推荐】Node.js 入门教程和学习资源汇总

    这篇文章与大家分享一批很有用的 Node.js 入门教程和学习资源.Node 是一个服务器端的 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用 ...

  3. 让我们一起学习《Node.js入门》一书吧!

    Node.js入门 读完本书之后,你将完成一个完整的web应用,该应用允许用户浏览页面以及上传文件. 里面对一些知识的讲解,让你略窥Node.js的门径.最好一段代码一段代码的写下来,我的习惯是手里拿 ...

  4. Node.js入门实例程序

    在使用Node.js创建实际“Hello, World!”应用程序之前,让我们看看Node.js的应用程序的部分.Node.js应用程序由以下三个重要组成部分: 导入需要模块: 我们使用require ...

  5. Node.js 入门教程和学习资源汇总

    这篇文章与大家分享一批很有用的 Node.js 入门教程和学习资源.Node 是一个服务器端的 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用 ...

  6. Node.js 入门资料

    小毛驴的阿凡提的 Node.js 入门笔记 http://www.cnblogs.com/Afanty/category/1007304.html

  7. Node.js 入门 资源

    Node.js 入门 <快速搭建 Node.js 开发环境以及加速 npm> http://fengmk2.com/blog/2014/03/node-env-and-faster-npm ...

  8. 《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记

    近期想尝试一下英特尔的基于WebRTC协同通信开发套件,所以须要在本地搭建Node.js Web的开发測试环境. 这里讲的是CentOS 下的搭建方法.使用Windows的小伙伴请參考: <No ...

  9. 极简 Node.js 入门 - Node.js 是什么、性能有优势?

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  10. 极简 Node.js 入门 - 1.2 模块系统

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

随机推荐

  1. mybatis处理单表多表操作以及动态sql和批量操作

    一.单表操作 建立了相应的mapper映射接口类后,在src/main/resources目录下的自己建立的mapper文件夹下创建映射类 select操作:用select标签 属性id为映射接口的方 ...

  2. javaweb笔记4之httpservlet

    1 httpservlet简介 service方法是Servlet的入口方法,调用servlet会首先调用service方法.在service方法中,会根据请求方式分别调用不同的doXXX方法.例如, ...

  3. HTML5 骨架

    html: <!DOCTYPE html> <html lang="zh-CN"> <head> <title>HTML5 骨架&l ...

  4. js点击弹出div层

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. UIScrollView控件详解

    一.知识点简单介绍 1.UIScrollView控件是什么? (1)移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限 (2)当展⽰示的内容较多,超出⼀一个屏幕时,⽤用户可 ...

  6. C primer plus 读书笔记第十一章

    本章标题是字符串和字符串函数.主要是了解和字符串有关的函数. 1.字符串表示和字符串I/O 主要内容:字符串常量和字符串数组的初始化,对比了指针和字符串. 其中要注意的是,数组初始化是从静态存储区把一 ...

  7. dispatch的几种队列

    dispatch的几种队列   dispatch队列的生成可以有这几种方式: 1. dispatch_queue_t queue = dispatch_queue_create("com.d ...

  8. SSH常用命令选项

    SSH 是什么 SSH(全称 Secure Shell)是一种加密的网络协议.使用该协议的数据将被加密,如果在传输中间数据泄漏,也可以确保没有人能读取出有用信息.要使用 SSH,目标机器应该安装 SS ...

  9. Java 图片与byte数组互相转换

    //图片到byte数组 public byte[] image2byte(String path){ byte[] data = null; FileImageInputStream input = ...

  10. 重装系统时,将MBR分区转为GPT 分区

    摘要 很多同学在重装系统的时候,或多或少都遇到过这样的问题:镜像文件没有问题,软碟通刻录也没有问题,但偏偏就在选择安装系统盘盘符的时候,跳出对话框,提示:Windows无法安装到这个磁盘,选中的磁盘具 ...