0

我正在尝试使用 Express 框架在我的服务器提供的静态 HTML 文件中动态附加 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 回答