2015-02-18 2 views
3

Я пытаюсь использовать phamtom в узле express app.phantom не имеет метода 'create'

Для целей тестирования я пишу этот тест

'use strict' ; 

var buster = require("buster"), 
    phantom = require('phantom'), 
    server="http://localhost:3000"; 
buster.spec.expose(); 
describe("get index page", function() { 
it("is accessable", function(phantom) { 
    phantom.create(function (error,ph) { 
    ph.createPage(function (page) { 
     ... ... 
      ph.exit(); 
      } 
     }); 
    }); 
    }); 
console.log('phatom.create.done') ; 
}); 
}); 

но когда испытание его

node test/node-test-index.js 

фантомный объект имеет не метод создания

TypeError: Object function (fn) { 
       if (typeof fn !== "function") { return resolve("resolve"); } 
       return function() { 
        try { 
         var retVal = fn.apply(this, arguments); 
         resolve("resolve"); 
         return retVal; 
        } catch (up) { 
         resolve("reject", up); 
        } 
       }; 
      } has no method 'create' 
     at Object.<anonymous>  (/home/hebus/Documents/git/system/nodejs/searchEs/test/node-test-index.js:25:15) 

ответ

0

Вы перезаписана ссылку на переменную в локальной области, если обратный вызов it. Не используйте повторно имена переменных!

it("is accessable", function(done) { 

Другое дело, что не так с вашим кодом является аргументом ошибки для phantom.create() обратного вызова.

Если вы действительно используете phantom модуль, то вам необходимо изменить

phantom.create(function (error,ph) { 

в

phantom.create(function (ph) { 

Если нет, то вы должны использовать

var phantom = require('node-phantom'); 

Это очень похожий мост между node.js и PhantomJS.

Смежные вопросы