zoukankan      html  css  js  c++  java
  • node.js的学习

    require('http') 内置模块

    server.js

    1. var http = require('http'); 
    2. function start(){ 
    3.     server = http.createServer(function (req, res) {   
    4.           res.writeHeader(200, {"Content-Type""text/plain"});   
    5.           res.end("Hello oschina ");   
    6.     })   
    7.     server.listen(8000);   
    8.     console.log("httpd start @8000");   
    9. exports.start = start;   

    index.js

    1. //路径根据自己的实际情况而定  
    2. var server = require("./nodejs/server"); 
    3. server.start(); 

    随后执行 node index.js ,打开网页输入localhost:8000  你就可以看见hello world!了。

    我们要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据来执行相应的代码(这里“代码”对应整个应用的第三部分:一系列在接收到请求时真正工作的处理程序)。

    因此,我们需要查看HTTP请求,从中提取出请求的URL以及GET/POST参数。这一功能应当属于路由还是服务器(甚至作为一个模块自身的功能)确实值得探讨,但这里暂定其为我们的HTTP服务器的功能。

    我们需要的所有数据都会包含在request对象中,该对象作为onRequest()回调函数的第一个参数传递。但是为了解析这些数据,我们需要额外的Node.JS模块,它们分别是url和querystring模块。

                                  url.parse(string).query
                                              |
              url.parse(string).pathname      |
                          |                  |
                          |                  |
                        ------ -------------------
    http://localhost:8888/start?foo=bar&hello=world
                                    ---      -----
                                    |          |
                                    |          |
                  querystring(string)["foo"]    |
                                                |
                            querystring(string)["hello"]

    现在我们可以来编写路由了,建立一个名为router.js的文件

    1. function route(pathname) { 
    2.   console.log("About to route a request for " + pathname); 
    3.  
    4. exports.route = route; 

    编写处理请求的页面,建立一个名为server.js的文件

    1. var http = require("http"); 
    2. var url = require("url"); 
    3.  
    4. function start(route) { 
    5.   function onRequest(request, response) { 
    6.     var pathname = url.parse(request.url).pathname; 
    7.     console.log("Request for " + pathname + " received."); 
    8.  
    9.     route(pathname); 
    10.     //在这里我们就可以对不同的路径进行不同处理  
    11.     //if(pathname=="") response.writeHead不同的信息之类的  
    12.     response.writeHead(200, {"Content-Type""text/plain"}); 
    13.     response.write("Hello World"); 
    14.     response.end(); 
    15.   } 
    16.  
    17.   http.createServer(onRequest).listen(8888); 
    18.   console.log("Server has started."); 
    19.  
    20. exports.start = start; 

    启动模块,index.js

    1. var server = require("./server"); 
    2. var router = require("./router"); 
    3.  
    4. server.start(router.route); 
  • 相关阅读:
    (转)Java new一个对象的过程中发生了什么
    多线程面试题集锦
    java调用ffmpeg获取视频文件信息的一些参数
    单点登录系统SSO实现
    Docker 项目上线
    Docker
    Docker
    Docker
    Docker
    Docker
  • 原文地址:https://www.cnblogs.com/huangxiaohen/p/3329927.html
Copyright © 2011-2022 走看看