Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express and Cheerio/JSDOM_Javascript_Node.js_Dom_Express_Cheerio - Fatal编程技术网

Javascript Express and Cheerio/JSDOM

Javascript Express and Cheerio/JSDOM,javascript,node.js,dom,express,cheerio,Javascript,Node.js,Dom,Express,Cheerio,我想让Cheerio和Express一起工作。 我希望能够从服务器上操作dom,但我所发现的只是web抓取 有一些要求 目前,我能够运行多个app.listen(端口)语句,并使用多个服务器 我正在尝试将警报(“测试”);附加到express发送的每个页面 我已经创建了express服务器:(假设Path是一个预定义的变量) 你们能给我提供一个工作示例来将它附加到页面上吗?有没有办法让它实时工作 谢谢!下面是一个没有错误处理的快速/简单示例: var express = require('exp

我想让Cheerio和Express一起工作。 我希望能够从服务器上操作dom,但我所发现的只是web抓取

有一些要求

目前,我能够运行多个
app.listen(端口)语句,并使用多个服务器

我正在尝试将
警报(“测试”);
附加到express发送的每个页面

我已经创建了express服务器:(假设
Path
是一个预定义的变量)

你们能给我提供一个工作示例来将它附加到页面上吗?有没有办法让它实时工作


谢谢!

下面是一个没有错误处理的快速/简单示例:

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);
var express=require('express');
var fs=需要('fs');
var cheerio=需要('cheerio');
var-app=express();
app.get('/',函数(req,res){
fs.readFile(Path+'/index.html',函数(err,data){
var$=cheerio.load(数据);
$('body').append('alert(“test”);');
res.send($.html());
});
});
app.listen(端口);

我只是在本地进行了测试,结果正如预期的那样。请确保在实际实现中测试
readFile
回调中的
err
,如果找不到文件或读取文件时出错,请妥善处理。

Cheerio肯定可以做到这一点。到目前为止,您做了哪些尝试?您遇到了哪些问题、错误等遇到?问题是我没有找到任何示例代码…因此我不确定从何处开始..添加了一个简单的示例。希望这能让您朝着正确的方向前进。我能做什么:app.use('/',express.static(Path));在顶部?@medemi68:您可以使用静态模块,但我认为这不会自动为由静态处理的请求运行。如果您想要包含此注入代码的类似于静态的内容,您可能需要编写自己的模块。此外,您也可以在路由中使用通配符,如
/*.html
,以e这运行一系列不同的URL。许多选项。
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);