티스토리 뷰

안녕하세요. 오늘은 `MEAN Web Development` 서적을 따라하다가 접하게 되는 한 가지 오류 관련해서 대처법을 잠시 설명하려 합니다.

아주 간략하게 추후 따로 검색하지 않도록 참고용으로 짤막하게 작성을 하겠습니다.


먼저, 오류 발생을 접할 수 있는 부분은 Chapter 5. 몽구스 소개 페이지에 나와있는 몽구스 설치 후 서버 기동 시 발생 하는 오류 입니다. 책에 나와 있는 대로 package.json 에 mongooose dependency 를 설정 후 js 파일들을 생성, 변경하여 mongoose 에 대한 내용을 셋팅하고 node server 를 하게 되면 아래와 같은 오류를 만날 수 있게 됩니다.


 



Error: Cannot find module '../build/Release/bson'


네, bson 모듈을 찾을 수 없다는 오류죠. 책에 있는 대로 몽구스도 제대로 설치하고 그대로 따라해도 위와 같은 오류를 만날 수 있게 됩니다. 오류를 본 후 bson 모듈을 node_modules 에서 찾아보면 버젓이 있습니다. 그렇다면 왜 저런 오류가 발생 하게 될까요? 이유는 빨간색으로 표시한 경로의 js 파일에서 찾을 수 있습니다. 해당 파일을 열어보면 아래와 같이 bson 모듈의 경로가 잡혀 있습니다.



try {

// Load the precompiled win32 binary

if(process.platform == "win32" && process.arch == "x64") {

  bson = require('./win32/x64/bson');

} else if(process.platform == "win32" && process.arch == "ia32") {

  bson = require('./win32/ia32/bson');  

} else {

  bson = require('../build/Release/bson');  

}

} catch(err) {

// Attempt to load the release bson version

try {

bson = require('../build/Release/bson');

} catch (err) {

console.dir(err)

console.error("js-bson: Failed to load c++ bson extension, using pure JS version");

bson = require('../lib/bson/bson');

}

}


스크린샷에 찍힌 오류처럼 ../build/Release/bson 에서 module 을 찾으려 하고 있습니다. 하지만 해당 모듈은 위의 주소가 아닌

node_modules/bson/browser_build 에서 찾을 수 있습니다. 그렇기에 해당 모듈을 오류 발생 경로에 맡게 폴더를 생성하고 옮기는 것으로 해결이 가능하겠지만 그것보다는 경로 변경을 하는 것이 좀 더 수월한 방법으로 생각이 되기에 아래와 같이 경로를 변경해 줍니다.


../build/Release/bson -> ../browser_build/bson


이렇게 경로가 변경된 데에는 찾아보니 버전에 따른 차이라고는 합니다. 예전 버전에서는 위와 같은 경로가 사용되었던 것 같습니다. 

2016년 2월에 이런 현상을 겪었고 해결하였다는 글이 있는 걸로 봐선 이미 그 시점이나 그 전부터 바뀐 것 같습니다.


아무튼 이렇게 경로 변경으로 해결 완료.!


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함