0

サーバーが提供する静的 HTML ファイルに、Express フレームワークを使用して HTML を動的に追加しようとしています。私が望んでいることを正確に実行する Cheerio モジュールを見つけましたが、HTML 全体をロードして文字列を追加する代わりに、システムにはるかに安価な方法があるかどうか疑問に思っていました。

AJAX とクライアントとの通信方法について検索しましたが、うまく機能しませんでした。私がcheerioで使用しているコードは次のとおりです。

exports.modify = function(req, res){

  var html = fs.readFileSync(__dirname + '/../public/index.html', 'utf8'); 
  var $ = cheerio.load(html);
  var scriptNode = '<p>Source code modified</p>';
  $('body').append(scriptNode);

  fs.writeFile(__dirname + '/../public/index.html', $.html(), function (err) {
    if (err) throw err;
    console.log('It\'s modified!');
    });

  res.send($.html());

}; 

より「適切な」方法で(おそらくAJAX呼び出しを使用して)どうすればよいですか?どんな提案でも大歓迎です。

4

1 に答える 1

0

JSON をデータ型として処理する場合は、別の特定のルートを設定するか、現在のルート ハンドラ内でリクエスト タイプをフィルタリングできます。

exports.index = function(req, res) {
  var data = someData.fetch();
  switch(req.format) {
    case 'json':
      res.json(data);
      break;
    default:
      res.render('template', {
      data:data
    });
  }
};
于 2013-04-11T08:47:22.353 に答える