Express and Cheerio/JSDOM

Express and Cheerio/JSDOM

本文关键字:JSDOM Cheerio and Express      更新时间:2023-09-26

我正试图让Cheerio与Express合作。我想能够从服务器操纵dom,但我所发现的只是网页抓取。

有一些要求…

目前,我能够运行多个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);

我刚刚在本地测试了它,它像预期的那样工作。请确保在您的实际实现中测试readFile回调中的err,如果没有找到文件或读取错误,请适当处理。