ykzts.com

node-xmlhttprequestをnpmに登録しました

著者: 山岸和利
更新: 編集履歴

node-xmlhttprequestnpmに登録しました。

$ npm install -g w3c-xmlhttprequest

のようなコマンドをターミナル等から入力する事によってインストールが可能です。

;(function () {
  'use strict'

  var XMLHttpRequest = require('w3c-xmlhttprequest').XMLHttpRequest

  var req = function req(uri) {
    var client = new XMLHttpRequest()
    client.open('GET', uri)
    client.responseType = 'json'
    client.addEventListener(
      'load',
      function (event) {
        console.log(client.response)
      },
      false
    )
    client.send(null)
  }

  req('http://example.com/sample.json')
})()

のようにNodeでもウェブブラウザ上のXMLHttpRequestとそう変わらない動作をさせられます。

関連記事

w3c-xmlhttprequest 1.1.0をリリースしました。ソースコードはGitHubにございますので、よろしければご確認ください。またPull Requestは熱烈に歓迎いたします。

XMLHttpRequest Level 2のWorking DraftにはresponseTypeという属性があります。この属性に'json'という値を代入することにより、req.send()を実行したのちに、response属性にあたかもJSON.parse(req.responseText)としたかのようなobjectがいれられるようになります。readyState属性の値がXMLHttpRequest.DONE (4) になった段階でresponseTextをパースするようなコードを書けば良い話ではあるのですが、コードの短縮化簡潔化をはかれて多くの人はしあわせになれるのではないでしょうか。この記事を執筆している段階では当該仕様はWorking Draftであり、実装もまだFirefoxでしかおこなわれていないようです<ins datetime="2012-06-19T13:30:00+09:00"> (Opera 12.00以降でも対応しているそうです) </ins>が、とても便利につかえそうなものなので今後 多くの環境で実装されることをねがいたいものですね。