如何使用Meteor解析HTML服务器端?

Sim*_*mon 15 meteor

我希望能够从我使用Meteor.http方法获取的HTML页面中删除链接.在服务器端使用jQuery是理想的,但我认为这不起作用.

Aks*_*hat 13

考虑使用cheerio就像jquery一样,但更多的是用于刮擦.我之前试图回答这个问题,所以我希望这次能做得更好.

它是一个npm模块,所以第一步用终端安装它(在你的项目目录中):

meteor add http
cd .meteor
npm install cheerio
Run Code Online (Sandbox Code Playgroud)

所以现在的代码:

您需要在服务器js /或等效服务器中使用它

var cheerio = __meteor_bootstrap__.require('cheerio');
Meteor.methods({
last_action: function() {
       $ = cheerio.load(Meteor.http.get("https://github.com/meteor/meteor").content);
       return $('.commit-title').text().trim()      
    }
})
Run Code Online (Sandbox Code Playgroud)

如果你从客户端js运行它,你会看到meteors github分支的最后一个动作:

Meteor.call("last_action",function(err,result){ console.log(result) } );
Run Code Online (Sandbox Code Playgroud)

我今天/星期二23日得到了这个

在此输入图像描述

与github.com/meteor/meteor上的相同

在此输入图像描述


Pio*_*dal 10

使用cheerio,正如Akshat建议的那样,但我会推荐一种不同的使用方式,截至目前,对于Meteor 0.8.0.

首先,为Meteor安装npm:

$ mrt add npm
Run Code Online (Sandbox Code Playgroud)

然后修改packages.json为(当然你可以有不同版本的cheerio或其他节点包):

{
  "cheerio": "0.15.0"
}
Run Code Online (Sandbox Code Playgroud)

server.js(或任何其他文件,在服务器端代码中)启动:

var cheerio =  Meteor.require('cheerio');
Run Code Online (Sandbox Code Playgroud)

以你喜欢的方式使用cheerio.

运行后$ meteor它会自动安装cheerio.