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); 
原文地址:https://www.cnblogs.com/huangxiaohen/p/3329927.html