gpt4 book ai didi

javascript - 使用桥获取 PhantomJS 返回的状态码

转载 作者:行者123 更新时间:2023-11-30 17:08:35 24 4
gpt4 key购买 nike

我正在创建一个小型 API 来监控我的一些网站的性能。为此,我想要加载时间和 http 状态代码。我正在使用 Node js 和 phatomjs 来执行此操作,到目前为止我的加载时间恰到好处,但我似乎无法取回状态代码。我尝试了一些不同的方法,但到目前为止都没有效果。

现在这是我的代码:

var express = require('express');
var app = express();

app.get('/', function(req, res) {
res.type('application/json');
res.send('{"status": "running"}');
});

app.get('/site/:url', function(req, res){
res.type('application/json');
res.header('Access-Control-Allow-Origin', '*');
res.header('Cache-Control', 'no-cache');
var url = decodeURIComponent(req.param('url'));
var phantom = require('phantom');
var time, code;

phantom.create(function(ph){
ph.createPage(function(page){
time = Date.now();
page.open(url, function(status){
time = Date.now() - time;

res.send({"status": status, "time": time});
});
});
});
});

var server = app.listen(80, function() {
var host = server.address().address;
var port = server.address().port;

console.log('Got\'cha .. ', host, port);
});

我试过了 http://phantomjs.org/api/webpage/handler/on-resource-received.html但我似乎看不到在哪里可以调用它,所以我可以将它与其他数据一起返回。到目前为止,我得到了这样的东西 {"status":"success","time":1723}

有人知道我能做什么吗?

最佳答案

你是对的 onResourceReceived提供实际的状态代码。如图functionality details ,您必须使用 page.set 设置事件处理程序。

您可以假设 onResourceReceived 在页面 open 回调之前执行:

var statusCode = null;
page.set('onResourceReceived', function(resource){
statusCode = resource.status;
});
page.open(url, function(status){
time = Date.now() - time;
res.send({"status": statusCode, "time": time});
});

如果你不能确定(你应该做一些测试),那么你可以使用像 waitFor from here 这样的东西:

var statusCode = null;
page.set('onResourceReceived', function(resource){
statusCode = resource.status;
});
page.open(url, function(status){
waitFor(function(){
return !!statusCode;
}, function(){
time = Date.now() - time;
res.send({"status": statusCode, "time": time});
});
});

关于javascript - 使用桥获取 PhantomJS 返回的状态码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27484554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com