Node.js
removed old dynamic helper logic from the view system · expressjs/express@986916c · GitHub Removed `app.dynamicLocals()`. Closes #756 · expressjs/express@cd88b92 · GitHub dynamicHelpers(dynamicLoclas)はこの辺りで消されてる。middlewareで…
けっこう前だけどhttp.jsとhttps.jsが消えてproto.jsってのになってた。 Replaced HTTPServer and HTTPSServer with a function / proto · senchalabs/connect@e2cae7f · GitHub まだリリースはされてないみたいだけど、けっこう使い方かわってる気がする。…
express使えってことかな Removed `router()` middleware. Closes #262 · senchalabs/connect@2ca7ec3 · GitHub
というのが追加されてる Added shorthand for the parsed request's pathname · expressjs/express@d10b7b4 · GitHub require('url').parse(req.url).pathname のショートハンドらしい。
新しいミドルウェア追加された。レスポンスヘッダをダンプして出力するデバッグ用のやつっぽい。 Added `connect.header()`, tiny middleware for response header debuggi… · senchalabs/connect@81e5195 · GitHub
っぽい。 Merged basepath setting. Closes #813 · expressjs/express@e9abe1b · GitHub app.set('home', '/hoge'); とかやってつかうやつ。
nodeでpitつくろうかと思ったけど、nodeのYAMLモジュールがRubyとかPerlでつくったYAMLのパースでエラって互換性とれなそうなので諦めた。 --- foo: bar まずyamlでこれをyaml.evalするとエラる。 Error: expected indent after document, near " \nfoo: bar…
非同期処理にはasync.jsを使ってて、大体async.series、async.parallelとかだけでやってたけど、forEachとかのループ中に非同期処理が入ってきたりすると面倒だなあと思ってた。そういうときはasync.forEach、async.forEachSeriesを使えばよさげ。 var async…
nodeの実行時にvi起動したくて例えばperlとかだと system 'vi /tmp/foo.txt'; とかで起動できて簡単なんだけどnodeで var exec = require('child_process').exec; exec('vi /tmp/foo.txt', function() { ... }); とかやっても起動しないのでどうしたもんかと…
Added support for multiple callbacks for `app.param()`. Closes #801 · expressjs/express@ca75492 · GitHub app.param('foo', fn1); app.param('foo', fn2); ってのができるようになってことかな。たぶん。
Added `res.set(field, val)` as an alternative to `res.header()` · expressjs/express@19a1a22 · GitHub Added `res.get(field)` as an alternative to `res.header(field)` · expressjs/express@c8c6aa2 · GitHubそれぞれres.setHeaderとres.getHeaderの…
されたみたい。 Removed `req.rawBody` from `bodyParser()` · senchalabs/connect@c3170ee · GitHubあってもいいと思うけど。まあほとんど使わんからいらんか。
res.sendの引数の順番逆になったっぽい。 Changed `res.{send,json}()` status code to the first arg at all times · expressjs/express@c35cd7f · GitHub res.send('error', 400); だったのが res.send(400, 'error'); になったみたい。
というのをSchemaのtypeに指定するとどんな型でも入れられるようになる。 var mongoose = require('mongoose') , Schema = mongoose.Schema; var FooSchema = new Schema({ bar: Schema.Types.Mixed });
embededじゃなくて正規化してリレーションしたい場合。これでいいのかわからんけど。mongoose.Schema.ObjectIdというのがSchemaの指定に使えるっぽいので var mongoose = require('mongoose') , Schema = mongoose.Schema , ObjectId = Schema.ObjectId; var…
sengridのSMTPリレーでnodemailerからメール送ると日本語が一部文字化けた。たぶんnodemailerがencodeしてる部分だと思うんだけど、HTTPのAPIで送ったら文字化けなかったので、HTTPのほう使うことにして原因究明は放置。あとISO-2022-JPにしようとするとnode…
とりあえず テンプレート継承がほしい(layout使いづらい) カスタムフィルター定義したい 渡してない変数はundefindeとかnullとかでうまい具体に処理してほしい(エラーにしないでほしい) とか。layoutはejsというよりexpressの機能だけど。そもそもlayout…
Webサービス的なものをnodeでつくってて、ガラケー対応しないといけないことはわかってたんだけど、しばらくガラケー対応とかやってなかったので、すっかり文字コードのことを忘れてて痛い目みた。ガラケーだけPHPかPerlで書こうと思ったけど、そんなに大き…
nodeでrequireされたモジュール内のthisはmodule.exportsになる console.log(this === module.exports); // true なのでthisに値を設定するのはmodule.exportsに設定するのと基本的には同じ。ただしスコープつくってしまうとthisが変わるので注意 (function(…
node.jsでconsole.logとかしてもenumerableがfalseなプロパティは見れない。 var o = Object.create(null, { foo: { value: 'bar', enumerable: false }, }); console.log(o.foo); // => bar console.log(o); // => {} o.fooはあるのにoをconsole.logしても…
ってsprintfみたいなことできたのね。 console.log('foo %s', 'bar'); //=> foo bar
前回に引き続きconnect.jsを読む。今回はconnect/http.js。ここがconnectのコア。まず最初にコンストラクタ。ここでhttp.Serverを継承してる。んでhttp.Server.call(this, this.handle)ってやってるのでリクエストハンドラをthis.handleにしてる。リクエスト…
connect読んでてそもそもhttp.createServerがどういうものかわかってなかったので。 var http = require('http'); var server = http.createServer(); server.on('request', function(req, res) { res.write(req.method + ' ' + req.url); res.end(); }); se…
なんかnodemailerとかmailerとか名前が似てるけどmailerのやつ。 GitHub - Marak/node_mailer: ## Project deprecated, see READMEtemplateを指定するとテンプレートエンジンにmustache.jsを使ってレンダリングしてくれるんだけど、このとき、レンダリング結…
なんか前回Sendgridではまりまくった件、やっぱり使ってたモジュールが原因だったっぽい。 SendGridのSMTPではまる - hokaccha.hamalog v2なんかこういうエラーがでてた。 events.js:45 throw arguments[1]; // Unhandled 'error' event ^ Error: 503 Alread…
node-devがどういう仕組みでファイルを監視してるのか気になって調べたのでメモ。基本的にはfs.watchFileで監視するんだけど、ロードしてるモジュールも全部監視してるのが謎だった。node.jsはrequireでモジュールをロードするときrequire.extensionsという…
使用するフレームワークのコードはちゃんと読んで理解しとけと偉い人が言ってた気がするのでexpressのコードを読んでみる。今回読むexpressのバージョンは2.4.3。 GitHub - expressjs/express at 2.4.3: Fast, unopinionated, minimalist web framework for …
がよくわからんかったのでソース見たら exports.createServer = function(requestListener) { return new Server(requestListener); }; だった。
daemontools使えばいいという話しなんだけど、node.jsの死活監視だけならforeverというのでモジュールでできるみたいなのでやってみた。 GitHub - indexzero/forever: A simple CLI tool for ensuring that a given script runs continuously (i.e. forever)…
このコードはエラる。mongooseのバージョンは1.6.0。 var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/mydb', function() { var UserSchema = new mongoose.Schema({ name: { type: String, unique: true } }); mongoose.model(…