관련지식
node.js, n, sqlite3
관련지식
node.js, n, sqlite3
기존에 sqlite3
를 node v8 환경에서 잘 사용하고 있었지만 node 버전을 업그레이드 할 필요가 있었습니다.
기존 사용환경
node.js : 8.11.1
sqlite3 : 3.1.13
https://www.npmjs.com/package/sqlite3
모든 버전을 테스트해보진 못했고 제가 설치한 버전으로 작성하겠습니다.
sqlite3
는 현재 4.1.0 입니다. sqlite3
는 4.X 버전부터 node v10을 지원하는것으로 알고 있으므로 최신버전으로 업데이트 하겠습니다.
npm install sqlite3
node.js
설치는 n
을 이용하면 매우 편리합니다. 따라서 n
을 설치해서 진행하겠습니다. root 사용자로 진행할 경우 sudo
명령어를 삭제하면 됩니다.
sudo npm install n -g
n
명령어로 노드를 설치합니다. 버전 10.16.3 을 설치하겠습니다.
sudo n v10.16.3
정상적으로 설치가 되었는지 확인하려면 node -v
를 입력하면 됩니다. 아래와 같은 형태로 보이면 정상압니다.
root@nodejs:/# n ls
node/8.11.1
node/10.16.3
root@nodejs:/# node -v
v10.16.3
`
이제 어플리케이션을 실행하려고 하면 아래와 같이 오류가 발생할것입니다.
Error: Cannot find module '/nodejs/node_modules/sqlite3/lib/binding/node-v64-linux-x64/node_sqlite3.node'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object.<anonymous> (/nodejs/node_modules/sqlite3/lib/sqlite3.js:4:15)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
노드 버전이 바뀌었기 때문에 현재 버전으로 다시 빌드해야 됩니다. 빌드를 시작하기 전에 실행중인 node.js 어플리케이션이 있다면 먼저 종료합니다. 그후 npm rebuild
을 입력합니다. 그럼 빌드가 진행되며 아래와 같이 많은 메시지가 보일것입니다.
user1@nodejs:/nodejs$ npm rebuild
> level@4.0.0 postinstall /nodejs/node_modules/level
> opencollective-postinstall || exit 0
Thank you for using level!
If you rely on this package, please consider supporting our open collective:
> https://opencollective.com/level/donate
> leveldown@4.0.2 install /nodejs/node_modules/leveldown
> prebuild-install || node-gyp rebuild
> nodejieba@2.3.1 install /nodejs/node_modules/nodejieba
> node-gyp rebuild
make: Entering directory '/nodejs/node_modules/nodejieba/build'
CXX(target) Release/obj.target/nodejieba/lib/index.o
CXX(target) Release/obj.target/nodejieba/lib/nodejieba.o
SOLINK_MODULE(target) Release/obj.target/nodejieba.node
COPY Release/nodejieba.node
이제 완료입니다. 어플리케이션을 구동해서 잘 실행되는지 확인해보시면 됩니다. 만약 빌드과정에서 오류가 난다면 node_modules 경로에 있는 모든 파일을 삭제 -> npm install
을 하신후 실행해보시기 바랍니다.
'node.js' 카테고리의 다른 글
[node.js] multer 패키지에서 용량 제한하기 (0) | 2020.01.07 |
---|---|
[node.js] 구글 이미지 검색 만들기(no api) (1) | 2019.12.12 |
[node.js] 인스타그램 사용을 위한 instagram-web-api2 패키지 써보기 (0) | 2019.10.21 |
[node.js] json config 파일을 제어하는 패키지 써보기 (0) | 2019.10.18 |
[node.js] EBS 외국어 라디오 녹음 with 편성표 (0) | 2019.10.10 |