Node之http对象

http建立在TCP协议之上,提供了网络交互的多个api,我根据自己的实践介绍下request和get的用法,这是底层的方法,用express等框架都可以实现

以极速数据api为例,appkey可以去注册申请一个

http.request 

调用方式 node http_request.js 13800000000

argv 指的是命令行参数

var qs = require(‘querystring‘)
var http = require(‘http‘)

var tel = process.argv.slice(2).join(‘ ‘).trim()

if (!tel.length) {
    console.log(‘error‘);
    process.exit()
}

http.request({
    host: ‘api.jisuapi.com‘,
    path: ‘/shouji/query?‘ + qs.stringify({appkey: ‘???‘, shouji: tel})
}, function (res) {
    var body = ‘‘

    res.setEncoding(‘utf8‘);

    res.on(‘data‘, function (chunk) {
        body += chunk;
    })

    res.on(‘end‘, function () {
        var obj = JSON.parse(body)
        console.log(‘归属地‘ + obj.result.city)
        console.log(‘运营商‘ + obj.result.company)
    })
}).end()

http.get

var qs = require(‘querystring‘)
var http = require(‘http‘)

var tel = process.argv.slice(2).join(‘ ‘).trim()

if (!tel.length) {
    console.log(‘error‘);
    process.exit()
}

http.get({
    host: ‘api.jisuapi.com‘,
    path: ‘/shouji/query?‘ + qs.stringify({appkey: ‘???‘, shouji: tel})
}, function (res) {
    var body = ‘‘

    res.setEncoding(‘utf8‘);

    res.on(‘data‘, function (chunk) {
        body += chunk;
    })

    res.on(‘end‘, function () {
        var obj = JSON.parse(body)
        console.log(‘归属地‘ + obj.result.city)
        console.log(‘运营商‘ + obj.result.company)
    })
})

http.request和http.get 核心的区别在于end()

最后介绍一个模块 superagent

首先安装 $ npm install superagent 

var request = require(‘superagent‘)

request.get(‘http://api.jisuapi.com/shouji/query‘)
    .query({appkey: ‘???‘})
    .query({shouji: ‘13800000000‘})
    .end(function (err, res) {
        if (res.ok) {
            var obj = JSON.parse(res.text)
            console.log(obj.result.company);
        } else {
            console.log(‘error ‘ + res.text);
        }
    })
时间: 2024-10-09 21:43:52

Node之http对象的相关文章

7:Node.js 全局对象

原文出自:http://www.w3cschool.cc/nodejs/nodejs-global-object.html Node.js 全局对象 JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可 以在程序的任何地方访问,即全局变量. 在浏览器JavaScript 中,通常window 是全局对象, 而Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性. 我们在Node

node.js JS对象和JSON字符串之间的转换

JSON.stringify(obj)将JS对象转为字符串. var json = { aa: ['sdddssd'],   bb: [ '892394829342394792399', '23894723984729374932874' ],   cc: ['11111111111111'] } => var string = JSON.stringify(json) string: {"aa":["sdddssd"],"bb":[&qu

Node.js自定义对象事件监听与发射

一.Node.js是以事件驱动的,那我们自定义的一些js对象就需要能监听事件以及发射事件.在Node.js中事件使用一个EventEmitter对象发出,该对象在events模块中.它应该是使用观察者设计模式来实现把事件监听器添加到对象以及移除,之前写OC那块的时候也有些观察者设计模式,在OC中也经常用到:通知中心.KVO,也很容易理解. .addListener(eventName,callback):将回调函数附加到对象的监听器中.当eventName的事件被触发时,回调函数被放置在事件队列

Node.js 全局对象

JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量. 在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性. 在 Node.js 我们可以直接访问到 global 的属性,而不需要在应用中包含它. 全局对象与全局变量 global 最根本的作用是作为全局变量的宿主.按照

13、Node.js 全局对象

主要用于调试,显示信息,重点看例子在浏览器 JavaScript 中,通常 window 是全局对象, Node.js 中的全局对象是 global ####__filename__filename 表示当前正在执行的脚本的文件名.它将输出文件所在位置的绝对路径,且和命令行参数所指定的文件名不一定相同. 如果在模块中,返回的值是模块文件的路径. ###__dirname__dirname 表示当前执行脚本所在的目录. ###setTimeout(cb, ms)setTimeout(cb, ms)

node 常用的对象

全局对象 process 全局对象 process.nextTick() process.argv 获取命令行输入的参数 __filename 当前运行文件的绝对路径 E:\Node.js\node对象\全局对象\01_filename&dirname.js __dirname 当前运行文件所在目录的绝对路径 E:\Node.js\node对象\全局对象 核心对象 http 创建服务,监听端口 url 解析req请求中的参数 url.parse(req.url,true) path 路径处理 p

node中的对象

1. class的概念 定义一个class,属性都是private,方法都是public. Hello.js: 使用class index.js: 2. 单例类 使用exports而不是module.exports.区别在于Hello导出的是新的Function对象,而single导出的是single.js的初始对象{}. 属性都是private,方法都是public需要exports接口导出. exports.name = name,相当于给接口{}创建动态属性.是无法导出var name的,

270 Node.js快速入门:Node.js 的组成,Node.js基础语法,Node.js全局对象global

var first = 'hello nodejs'; console.log(first); function fn (){ console.log('fn函数被调用了'); } fn (); for (var i = 0; i <5; i ++) { console.log(i); } if (true){ console.log('123'); } console.log('文件被修改了') global.console.log('我是global对象下面的console.log方法输出的

SpriteKit改变Node锚点其物理对象位置不正确的解决

在创建Node的物理对象后,默认情况下物理对象和Node的实际边界对应的很好,因为此时Node的默认锚点是其中心位置即(0.5,0.5),不过如果我们改变了Node的锚点,就会发现其物理边界还是保持原来的位置,这可不是我们想要的结果: let bouncer = SKSpriteNode(imageNamed: "bouncer") bouncer.anchorPoint = CGPoint(x: 0.5, y: 0) bouncer.position = CGPoint(x: 0,