nodejs httpserver


用nodejs服務器去拿取后台的數據。(我剛開始學的nodejs的時候是一個蒙圈的寶寶 t.t,開始接觸的時候,在本地搭建去拿數據。之前菜鳥的我都不知道路由是神馬[囧囧])。

--> index.js

var server = require("./server");
var router = require("./router");
var requestHandlers = require("./requestHandlers");
var handle = {};
handle["/get_data"] = requestHandlers.get_data;
server.start(router.route, handle);

--> server.js

var http = require("http");
var url = require("url");
function start(route, handle) {
  function onRequest(request, response) {
    var postData = "";
    var pathname = url.parse(request.url).pathname;
    var getData  = url.parse(request.url).query;
    console.log("Request for " + pathname + " received.");
    request.setEncoding("utf8");
    request.addListener("data", function(postDataChunk) {
      postData += postDataChunk;
      console.log("Received POST data chunk '"+ postDataChunk + "'.");
    });
    request.addListener("end", function() {
      if(postData == ""){
           postData = getData;
      }
      route(handle, pathname, response, postData);
    });
  }
  http.createServer(onRequest).listen(8888);//當你成功滴時候,你的數據在這里。
  console.log("Server has started.");
}
exports.start = start;

 

--> router.js

function route(handle, pathname, response, postData) {
  console.log("About to route a request for " + pathname);
  if (typeof handle[pathname] === 'function') {
    handle[pathname](response, postData);
  } else {
    console.log("No request handler found for " + pathname);
    response.writeHead(404, {"Content-Type": "text/plain"});
    response.write("404 Not found");
    response.end();
  }
}
exports.route = route;

--> requestHandlers.js

var querystring = require("querystring");
var request = require('request');//請求模塊
//get data
function get_data(res, postData) {
        console.log('get debug post data',JSON.stringify(postData));
        request.post({
                        url : 'xxx.xx.xxx',//你請求后台的鏈接
                        form : {
                              //params,你的請求的參數
                        }
                }, function(error, response, body) {
                        console.log('body is',body);
                        res.writeHead(200,{'Content-Type':'application/json; charset=utf8', 'Access-Control-Allow-Origin':'*', 'Accept-Language':'zh-CN'});//響應頭
                        res.end(body);
                });
}
exports.get_data = get_data;

然后,你可以啟動你的服務:node index,當命令行出現  “Server has started”。如果出現什么錯誤的話,可能的情況是你的node_modules里的模塊沒有安裝完成,按照缺少的安裝就好了。對了,還有一個package.json,通過 npm init去生成。npm install xxx --dev去安裝相應的包。然后去你的瀏覽器輸入 127.0.0.1:8888/get_data,看有沒有你想要的數據哦。

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM