【发布时间】:2013-04-11 07:44:43
【问题描述】:
我正在尝试使用 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 调用)来做到这一点?任何建议都将受到欢迎。
【问题讨论】:
-
我不太明白你想做什么。如果要将 JSON 作为数据类型处理,则可以设置另一个特定路由,或者可以在当前路由处理程序中过滤请求类型:exports.index = function(req, res) { var data = someData.fetch(); switch(req.format) { case 'json': res.json(data);休息;默认值:res.render('template', { data:data }); } };
-
我只希望修改路由将上面代码显示的scriptNode通过AJAX发送到客户端index.html,然后获取它并将其写入文件,而不刷新整个页面。跨度>
-
你必须有 3 条路线。 1. 带有表单和客户端 javascript 的 HTML 页面 2. 将返回 scriptPage 的路由,从客户端 javascript 调用 3. 根据客户端请求修改服务器端版本的路由。您描述问题的方式表明您并不真正了解应该如何处理路由和客户端/服务器端。阅读快速文档会很有用。
-
你能给我看一个小例子让我更清楚吗?无论如何感谢您的回答!
-
老实说不...我没有时间制作教程 + 有很多好的教程可供选择。
标签: javascript ajax node.js express