Tech Tips

  1. プログラミング
  2. 2629 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. PlatformIO IDE for VSCode を使用して VSCode で Ardu…

  2. ROS Docker イメージで発生した GPG error の解消方法

  3. Streamlit で訪れた国を色づけした世界地図を作成できるアプリケーションを作成してみ…

  4. M5Stack Core2 for AWS – ESP32 IoT開発キットで…

  5. D3.js v7 で点・線・テキスト・ツールチップ・ズームを設定する方法

関連記事

PAGE TOP