2014-07-14 3 views
2

CasperJS에서 MongoDB 컬렉션에 레코드를 삽입하려하지만 첫 번째 장애물에서 차단되었습니다.CasperJS에서 MongoDB를 어떻게 요구합니까?

은 내가 먼저 내 응용 프로그램의 루트에서 다음 명령을 실행하여 MongoDB를 설치 :

npm install mongodb 

이 오류없이 성공적으로 완료됩니다.

나는이 줄을 포함 server.js라는 CasperJS 파일을 가지고 :

var db = require('mongodb'); 

나는이와 casperjs server.js를 실행하려고, 나는 다음과 같은 오류 얻을 :

js-bson: Failed to load c++ bson extension, using pure JS version 
Error: Cannot find module 'util'             
    /home/aaron/Documents/git/mateserver/phantomjs:/bootstrap.js:289 
    /home/aaron/Documents/git/mateserver/phantomjs:/bootstrap.js:254 in require 
    /home/aaron/Documents/git/mateserver/node_modules/mongodb/lib/mongodb/commands/insert_command.js:2 
    /home/aaron/Documents/git/mateserver/node_modules/mongodb/lib/mongodb/commands/insert_command.js:162 

는 것 같다을 패키지가 누락되어 있으므로 다음 명령을 실행합니다.

npm install util 

성공적으로 실행되는 패키지 그럼, 다시 응용 프로그램을 시작하려고하지만이 오류가 발생합니다.

js-bson: Failed to load c++ bson extension, using pure JS version 
TypeError: 'undefined' is not a function (evaluating 'inherits(InsertCommand, BaseCommand)') 
    /home/aaron/Documents/git/mateserver/node_modules/mongodb/lib/mongodb/commands/insert_command.js:38 
    /home/aaron/Documents/git/mateserver/node_modules/mongodb/lib/mongodb/commands/insert_command.js:162 

그리고 여기는 내가 붙어 있습니다. 이 문제를 어떻게 해결할 수 있습니까? MongoDB는 CasperJS와 호환되지 않습니까?

MongoDB (npm을 통해 설치됨) 버전 1.4.7에서 CasperJS 버전 1.1.0-beta3을 사용하고 있습니다. 호스트 시스템은 Ubuntu 14.04 64 비트입니다.

답변

1

CasperJS는 node.js.와 비슷하지만 별개의 표준 모듈을 가진 phantomjs에서 실행됩니다. mongodb 모듈 안에있는 모든 require 개의 모듈을 살펴보고 node.js API 대신 phantomjs API을 사용하도록 모듈을 다시 작성해야합니다. 아마도 해결할 수없는 문제가 발생할 것입니다.

inherits 함수의 경우 내부 node.js util 모듈에 순환 종속성이있는 것으로 판단됩니다. inherits.jsinherits_browser.js으로 덮어 쓰면 node_modules/util/node_modules/inherits에이를 해결할 수 있습니다.

+1

감사합니다. 그것은 그것이 가치있는 것보다 더 많은 노력이 될 수있는 것처럼 들립니다. 아마도 내가 CasperJS에서 SpookyJS에 가지고있는 것을 다시 프로그래밍하거나, 일부 Selenium webdriver 컨트롤러 용 커스텀 래퍼를 만드는 것이 나에게 더 가치있을 것입니다. –

+1

노드에서 캐스퍼 인스턴스를 스폰하거나 child_process를 사용하여 파일에 결과를 기록하고 노드에서 해당 파일을 읽고 mongodb에 저장할 수 있습니다. –

+0

@ArtjomB. : 당신이 방금 말한 해결책. 그게 효과가 있니? –

0

SpookyJS가 NodeJS에서 CasperJS를 구동 할 때 살펴볼 수 있습니다.

관련 문제