用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,看有没有你想要的数据哦。

												

nodejs httpserver的更多相关文章

  1. 用nodejs http-server搭建本地服务环境

    一.本地环境,不包括域名的方法: https://www.npmjs.com/package/http-server(参考手册) 正确使用方法:

  2. NodeJS服务器端平台实践记录

    [2015 node.js learning notes]by lijun 01-note Nodejs是服务器端的javascript,是一种单线程.异步I/O.事件驱动型的javascript:其 ...

  3. http-server 简介 复制的

    http-server 简介 https://blog.csdn.net/ithanmang/article/details/88375259http-server 是一个简单的零配置的命令行 htt ...

  4. AngularJS介绍

    AngularJS介绍–AngularJS的前世今生 AngularJS是什么 在Web开发领域,我们一般使用HTML作为前端页面元素的声明式语言,使用CSS技术作为展示样式的描述语言,JavaScr ...

  5. LoadJS

    LoadJS是一个微小的异步加载器为现代浏览器(711字节). https://github.com/muicss/loadjs 介绍 LoadJS是一个微小的异步加载库的现代浏览器(IE9 +). ...

  6. 一个简单的零配置命令行HTTP服务器 - http-server (nodeJs)

    http-server 是一个简单的零配置命令行HTTP服务器, 基于 nodeJs. 如果你不想重复的写 nodeJs 的 web-server.js, 则可以使用这个. 安装 (全局安装加 -g) ...

  7. nodejs搭建http-server

      很多时候我们都需要搭建一个简单的服务器,部署在IIS,阿帕奇,或者用nodejs,网上很多关于nodejs搭建server的文章,但都是要创建server.js,很麻烦, 在这里我分享一个创建ht ...

  8. nodejs:本地文件夹http服务器http-server

    一.已经安装nodejs的电脑,有一个方便通过http访问本地文件夹.文件夹服务器 static files over HTTP,并不是我们平常说的node那个web服务器哦 二.好处 可以方便实现跨 ...

  9. 【NodeJS】http-server.cmd

    npm install http-server @echo off  start cmd /k "D:\Program Files\nodejs\node_global\http-serve ...

随机推荐

  1. PHP中include引用导致不能再次相对引用文件的一个小问题

    今天遇到一个问题:php,incldue_once引入多次文件,多层引用,所以,不同目录下的文件要使用一个文件得先确定目录,比如(下例是提取出来的精简例子,组织的有点乱乱的): /homepage/i ...

  2. 《Linux及安全》实践2

    <Linux及安全>实践2 [edited by 5216lwr] 一.Linux基本内核模块 1.1理解什么是内核模块 linux模块是一些可以作为独立程序来编译的函数和数据类型的集合. ...

  3. zookeeper+jstorm的集群搭建

    zookeeper的配置: zookeeper有三种配置方式:单机式/伪分布式/集群式 其中伪分布式是在一台电脑上通过不同的端口来模拟分布式情形,需要N份配置文件和启动程序,而集群式是多个zookee ...

  4. 什么是ValueStack

    转载自:http://www.cnblogs.com/zyw-205520/archive/2012/09/12/2681346.html Strut2的Action类通过属性可以获得所有相关的值,如 ...

  5. NSInternalInconsistencyException

    2016-09-10 12:48:13.281 Friend[92304:1843372] *** Terminating app due to uncaught exception 'NSInter ...

  6. php代码性能分析方法

    1.用到的函数 microtime() ,函数返回当前 Unix 时间戳和微秒数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00 ...

  7. JSON字符串与JSON对象的区别

    Q:什么是"JSON字符串",什么是"JSON对象",两者的区别? a.JSON对象是直接可以使用JQuery操作的格式,如C#中可以用对象(类名)点出属性(方 ...

  8. Python学习【第十一篇】模块(1)

    模块 模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用. 简单地说,模块就是一个保 ...

  9. 第三篇:白话tornado源码之请求来了

    上一篇<白话tornado源码之待请求阶段>中介绍了tornado框架在客户端请求之前所做的准备(下图1.2部分),本质上就是创建了一个socket服务端,并进行了IP和端口的绑定,但是未 ...

  10. C++动态加载DLL调用方法

    一.构建DLL路径 char szTmp[_MAX_PATH]; char* szPath = getcwd(szTmp, _MAX_PATH);//获取当前工作目录  //构建dll路径  strc ...