Production Level Knowledge & Tips

  1. プログラミング
  2. 195 view

[Javascript][node.js]jsdomを使ってみる

node.js上でjqueryを使うにはjsdomとdomToHtmlを利用するらしい。
それらを利用してjqeuryでbody以下にp要素を新たに追加するコードを書いてみた。
var http = require("http");
var url = require("url");
var fs = require('fs');
var jsdom = require('jsdom');
var path = require('path');
var jsdomHome = path.dirname(require.resolve('jsdom'));
var domToHtml = require(path.resolve(jsdomHome, 'jsdom/browser/domtohtml'));

var jquery = 'http://code.jquery.com/jquery-1.10.1.min.js';

function start() {
    function onRequest(request, response) {
        var pathname = url.parse(request.url).pathname;
        console.log("Request for " + pathname + " received.");

        var content = fs.readFileSync("./index.html", 'utf-8')
        var document = jsdom.jsdom(content);
        var window = document.createWindow();

        jsdom.jQueryify(window, jquery, function(window, $) {
            $('body').append('<div>More Hello world!!</div>');
            response.writeHead(200, {"Contet-Type": "text/plain"});
            response.write(domToHtml.domToHtml(document, true));
            response.end();
        });
    }
    http.createServer(onRequest).listen(8080);
    console.log("Server has started.");
}

start();
コンテンツとして使用するhtmlファイルは以下。
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="utf-8">
        <title>EmberJS Test</title>
    </head>
    <body>
        <div>Hello, world!</div>
    </body>
</html>
アクセスしてみると、
Hello, world!
More Hello world!!
と表示される。

プログラミングの最近記事

  1. How to bring columns not GROUP BY key from ne…

  2. HiveでGROUP BYを伴うサブクエリのネストからGROUP BYのキー以外のカラムを…

  3. How to drop Hive’s External Table

  4. HiveでExternal Tableを削除する方法メモ

  5. [触ってみた]Microsoft Quantum Development Kit

関連記事

PAGE TOP