日々精進

新しく学んだことを書き留めていきます

node.js

httpモジュールでクッキーを使う方法

↓で書いてあるけど、セミコロン区切りのクッキー文字列をヘッダーに渡さないといけない。 node.js - How do I create a HTTP Client Request with a cookie? - Stack Overflow

nodeのhttpモジュールでプロキシ経由のリクエストを出す方法

↓に書いてあるけど、hostやheadersの指定がトリッキーなのでおとなしくrequestモジュールを使った方がいいね。 How can I use an http proxy with node.js http.Client? - Stack Overflow

httpリクエストでgetaddrinfo ENOENTエラーが出る

これはhttpのoptionのhostにプロトコル(httpとか)を書いてしまってる場合にでるらしい。 node.js - nodejs httprequest with data - getting error getaddrinfo ENOENT - Stack Overflow

nockでhttpモジュールをmock

httpクライアント機能のテストに使えそう。 pgte/nock · GitHub

RequireJSをnode.jsで使う

クライアントサイドとサーバサイドの両方でJSのコードを使いたい場合、 Requirejsを使うが、以下のようなコードを書いたらcls.coffeeで エラーが出た。 main.coffee cls = require "./cls" requirejs = require('requirejs') requirejs.config nodeRequire: …

npmをプロキシ経由で使う方法

以下のコマンドを各自環境に合わせて修正して実行すればいいっぽい。 npm config set strict-ssl false npm config set registry "http://registry.npmjs.org/" npm --proxy http://username:password@cacheaddress.com.br:80 これでパッケージインストール…

node.jsのスクレイピングはCPUヘビーな処理

jsdomを使ってスクレイピングする処理のパフォーマンスを計測してみた。 Requestにかかった時間:200msぐらい Request以外にかかった時間(jsdomでDOM構築一回400ms、jQueryスクレイピング200ms):1000msぐらい ということでスクレイピングはCPUヘビーな処理…

NodeでShift-JISのページをスクレイピングしたら文字化けする

Nodeは基本的にUTF8しか扱えないのでスクレイピングしてきた文字列がShift-JISとかだったらUTF8に変換してやる必要がある。 が、node-iconvを使って変換しても文字化けが直らず困った。 調査してみると、どうもrequestライブラリがHTMLを取ってきたときに文…

fs.createWriteStreamでエラー「{Error: ENOENT, open errno: 34, code: 'ENOENT', path: ・・・」

fs.createWriteStreamを実行すると下記エラーが出てこまった。 {Error: ENOENT, open errno: 34, code: 'ENOENT', path: ・・・ 原因はファイルパスが間違っていることだった。。 fsに渡すファイルパスの"./"は実行中のJSファイルがあるフォルダだと思ってい…

node.jsでのスクレイピング

・最初jsdomを使ってスクレイピングを始める ・途中でjsdom.envにコールバックを渡すスタイルが気になってくる。DOMを作る処理を同期でできればいいのに。。 ・↓の記事を見てcheerioを使い出す A Node in Nodes - 2012年のスクレイピング ・ちゃんとスクレイ…

node.jsからAWS S3へファイルをアップロードする

awssumというライブラリを使えばできるっぽい。 chilts/node-awssum · GitHub javascript - Upload S3 knox node js (signature doesnt match) - Stack Overflow このライブラリの初期化コードのなかでRegionを指定してるんだけど、これがどこを指しているの…

httpでファイルを取ってきて保存する

httpでファイルを取ってきて保存しようとすると以下のエラーが出た。 { [Error: getaddrinfo ENOENT] code: 'ENOTFOUND', errno: 'ENOTFOUND', syscall: 'getaddrinfo' }これはDNSがドメイン名を解決出来なかったことが原因だった。通信経路をLAN経由からWim…