nodejs处理get请求

主要记录下获取get请求里面的参数的问题。

假设有这样一个链接

urlString=‘hello?name=LiLei&position=general‘

要从这个链接里提取出参数name和position的值。这里要用到url模块和querystring模块,所以先准备这两个对象。

var url = require("url");
var querystring = require("querystring");

然后将urlString转化成url对象,并提取参数字符串"name=LiLei&position=general"

var UrlString = url.parse(urlString); //将字符串urlString转化成url对象UrlString
var QueryString = UrlString.query;//获取参数字符串,此时QueryString="name=LiLei&position=general"

然后利用querystring.parse()将参数字符串QueryString转化成含有键值对的对象params

var params = querystring.parse(QueryString);

然后用params["name"]、params["position"] (或者params.name、params.position)就能获取参数name、posiotion的值。上面两步也可以综合起来写成

var params = querystring.parse(url.parse(urlString).query);

下面给出个小例子(已省去非关键代码):

var handle = {};
var url = require("url");
var querystring = require("querystring");

handle["/hello"] = hello;

function hello(request, response) {
    /*
    url.parse将字符串转化成url对象,
    url.parse().query获取url里面的参数字符串,比如“name=LiLei&position=general”,
    再用querystring.parse(query),将“name=LiLei&position=general”转换成键值对组成的对象params,像{name:"LiLei",position:"general"}这样
    */
    var params = querystring.parse(url.parse(request.url).query);
    response.writeHead(200, {"Content-Type": "text/html;charset=utf-8"});//添加charset=utf-8以支持中文
    response.write("name:" + params.name + "<br/>");
    response.write("position:" + params.position + "<br/>");

    /*或者也可以像下面这样使用遍历*/
    /*for(var param in params){
        response.write(param + ":" + params[param] + "<br/>");
    }*/

    response.end();
}

exports.hello = hello;
时间: 2024-11-12 17:44:57

nodejs处理get请求的相关文章

Nodejs发送Post请求时出现socket hang up错误的解决办法

参考nodejs官网发送http post请求的方法,实现了一个模拟post提交的功能.实际使用时报socket hang up错误. 后来发现是请求头设置的问题,发送选项中需要加上headers字段信息(这个估计也和对方的服务器有关,对于不完成的post请求头,可能被丢弃了). 完整的代码如下(遇到类型问题的同学可以做个参考): var querystring = require('querystring') , http = require('http'); var data = query

理解互联网域名请求实现过程,以及Nodejs的http请求小谈

前提:在学习开发互联网网站程序前,需要了解知道一个客户端请求,如何能展现成一个炫丽的网页的. 一.域名请求实现 这幅图足以说明一个域名请求的过程了吧 二.服务器端的处理(Nodejs示例) 直接上nodejs代码 1 var http = require('http'); 2 3 http.createServer(function(req, res) { 4 if (req.method === 'GET') { 5 var html; 6 switch (req.url) { 7 case

Nodejs 处理 302请求

Nodejs发送http请求时,有时候会遇到302的转发请求,需要额外做处理.处理方案:获得headers.location,重新发起请求到这个地址上 原文地址:https://blog.51cto.com/ericyu/2443967

nodejs发起HTTPS请求并获取数据

var https = require('https'); var zlib = require('zlib'); var post_data="………………";//请求数据 var reqdata = JSON.stringify(post_data); var options = { hostname: '10.225.***.***', port: '8443', path: '/data/table/list', method: 'POST', rejectUnauthoriz

nodejs模仿http请求组件nodegrass简单例子

最近做数据导入,须模拟http请求,调用框架的相应方法进行数据的插入及保存操作. 采用nodejs的nodegrass方法进行相应简单模仿. 1.搭建nodejs环境. 2.执行npm install nodegrass命令. 3.引入模块,var ng= require(nodegrass); 4.下面先看nodegrass底层的get方法的具体实现,代码如下: //Get Method Request //Support HTTP and HTTPS request,and Automati

Nodejs根据具体请求路径执行具体操作

1.处理请求模块(requestHandlers.js) function start(){ console.log("Request handler 'start' was called "); return "Hello start"; } function upload(){ console.log("Request handler 'upload' was called "); return "Hello Upload"

nodejs 接收GET请求(favicon.ico)

var http = require('http'); http.createServer(function (req, res) {   console.log(req.url);   console.log(req.method);   console.log('-------------------------------------------');   res.writeHead(200, {'Content-Type': 'text/plain'});   res.end('Hell

nodejs 项目,请求返回Invalid Host header问题

今天在linux上安装node,使用node做一个web服务器,在linux上安装各种依赖以后开始运行但是,出现了:Invalid Host header 的样式,在浏览器调试中发现是node返回的错误! 于是就百度,最后找到了一个解决的方法,(看的别人的). 是webpack-dev-server版本更新了的问题. 解决问题的方法: 添加配置信息 disableHostCheck: true // 启动服务 var app = new WebpackDevServer(webpack(conf

nodejs网页请求

今天做nodejs的http请求的时候,竟然报错了 list argument must be an array of buffers 我还是代码识别数值错误了呢,我还特意把nodejs去下载个新版本呢,原来的是6.9.1下了最新的6.10.1后进入没有效果呢 这是我上次调整的代码,因为中文乱码的问题,nodejs中web请求乱码 特意修改的现在竟然报错了 我用代码测试检测是不是数值确实是数组 那是什么问题呢,找很久也没解决,后台突然想到是不是数组里面的不是Buffer呢 两个参数都检测真有一个