javascript - ExpressおよびCheerio / JSDOM

原文 javascript node.js dom express cheerio

CheerioをExpressで動作させようとしています。
サーバーからdomを操作できるようにしたいのですが、見つけたのはWebスクレイピングだけです。

いくつかの要件があります。

現時点では、複数のapp.listen(port);ステートメントを実行し、複数のサーバーを使用できます。

私はエクスプレスによって送信されたすべての単一のページに<script>alert("test);</script>を追加しようとしています。

私は高速サーバーを作成しました:(Pathが事前定義された変数であると仮定)

var express = require('express');
var app = express();    
app.get('/', function (req, res) {
        app.use(app.static(Path));
        res.sendFile(Path + "/index.html");
    });
app.listen(Port);


これをページに追加するための実用的な例を教えてください。これをリアルタイムで機能させる方法はありますか?

ありがとう!
答え
エラー処理を行わない簡単な例を次に示します。

var express = require('express');
var fs = require('fs');
var cheerio = require('cheerio');

var app = express();

app.get('/', function (req, res) {
    fs.readFile(Path + '/index.html', function(err, data) {               
        var $ = cheerio.load(data);

        $('body').append('<script>alert("test");</script>');

        res.send($.html());
    });
 });

app.listen(Port);


私はそれをローカルでテストしたところ、期待どおりに機能しました。実際の実装のerrコールバック内でreadFileをテストし、ファイルが見つからない場合、またはファイルの読み取りエラーが発生した場合は、適切に処理してください。
関連記事

javascript - ifが機能しない場合のclearInterval

javascript - ReactJS-複数の要素へのsetState

javascript - php:// stdinが余分な文字を読み取る

javascript - (AngularJS)UI-Routerのセットアップ後にインジェクションが機能しない

javascript - AngularJSでタッチ/ドラッグを開始するときにメソッドを呼び出す方法

javascript - 1番目のテキストフィールドのラジオボタンをクリックしている間、2番目のテキストフィールドは非アクティブである必要があります

javascript - 階層グリッドでネストされたKendo UIデータソースのデータをフィルターする方法

javascript - SQLローカルデータベースに値を挿入し、JavaScriptを使用してテーブルデータを印刷する

javascript - Win7でIE11を使用したJavascriptランタイムエラー:未定義またはnull参照のプロパティ 'disabled'を設定できません

javascript - JavaScriptを使用して.configファイルから値を読み取る