Node.jsでjQueryを利用する

JavaScriptでのDOM操作とかをクライアントでjQueryを使っていると、サーバ側でも使いたくなります。何せ楽ですからね。
という事で、jQueryを使ってみました。
いつもの通り、インストールから。

$ mkdir jquery_sample
$ cd jquery_sample && npm init
$ npm install jquery --save

サンプルはHTMLファイルを読込んで、DOM操作をして書き出す処理にしてみました。

index.html

<html><body><div id="hoge"><h1>h1 text</h1></div></body></html>

app.js

var $ = require('jquery');
var fs = require('fs');

fs.readFile(__dirname + '/index.html', function (err, data) {
	if (err) throw err;

	var body = data.toString();
	console.log(body);

	console.log($(body).find('h1').text());
	console.log($(body).find('#hoge').html());

	body = $(body).find('h1').text('Hello World').parents('html')[0].outerHTML;

	console.log(body);
	console.log($(body).find('h1').text());

	fs.writeFile(__dirname + '/out.html', body, 'utf-8', function(){
		if (err) throw err;
		console.log('done');
	});
});

実行結果

$ node app.js 
<html><body><div id="hoge"><h1>h1 text</h1></div></body></html>

h1 text
<h1>h1 text</h1>
<html>
  <body>
    <div id="hoge">
      <h1>Hello World</h1>
    </div>
  </body>
</html>

Hello World
done

out..htmlも上記の操作後のHTMLになっています。