기본적으로 Node.js 응용 프로그램의 각 모듈은 동일한 데이터베이스 연결과 공유 되므로이 제목 자체는 제안입니다. 그러나 자세가 잘못되면 못 생겼고 잘못 될 수도 있습니다.
다음 부분을 무시하고 요점에 도달 할 수 있습니다.
배경
최근에 저는 전문 코스 디자인을하고 있습니다. 제목은 "항공 티켓 예약 관리 시스템"입니다. 요구 사항은 비교적 간단하므로 최근에 배우고 있던 Node.js를 사용하려고했습니다. 또한 Node.js 프레임 워크의 종류가 더 적합한 것으로 조사했습니다. 몇 가지 프레임 워크를 읽은 후, 나는 이것이 살인자라는 것을 알았습니다. 문서와 검색 정보를 읽을 시간이 있다면 직접 작성하는 것이 좋습니다. 마지막으로, 글을 쓰고 나면 코드를 Github에 올려 놓을 것입니다. 모두가 나를 비판하고 수정하는 것을 환영합니다.
데이터베이스 측면에서, 나는 더 친숙하고 JSON을 좋아한다고 생각했다 (SQL Well -_-#을 배우지 않으면 인정). 그래서 나는 mongodb를 선택했다. Node + Mongo는 최근 몇 년 동안 점점 인기있는 백엔드 조합이며 인터넷에서 함께 사용하는 방법에 대한 많은 정보가 있습니다. 그러나 시간을 절약하고 코스 디자인은 일주일이 넘었고 시스템과 논리에 더 집중하기 위해 MongoDB 데이터 모델링에 특별히 사용되는 Node.js 확장자 인 Mongoose를 사용하여 데이터베이스를 작동하는 코드를 크게 줄였습니다.
주요 주제
두 가지 데이터 모델을 설정했습니다. 하나는 사용자 (사용자)이고 다른 하나는 비행 (비행)이며, user.js, flight.js의 두 모듈 (모듈)으로 캡슐화됩니다. 모델은 데이터베이스와 상호 작용할 책임이 있습니다. 사용자 및 비행 모듈 모두 데이터베이스에 연결해야합니다. 처음에는 내 코드가 다음과 같습니다.
// ------ user.js ----- // mongoose.js 참조 mongoose.jsvar m = require ( 'mongoose'); // 데이터베이스에 대한 연결 데이터베이스에 연결 m.connect ( 'mongodb : // localhost/test'); // ... // -------------------------------------------------------------------------------------------------------------------------------------------- 요구 사항 ( 'mongoose'); // 데이터베이스에 연결 데이터베이스에 연결 M.Connect ( 'mongodb : // localhost/test'); // ... 다른 코드 ... // ------ 모델 .js ----- var user = require ( './ user'), flight = require ( './ flight'); // ----- var 모델 = 요구 사항 ( './ 모델);
이 글쓰기 방법은 전혀 건조하지 않다는 것은 말할 것도없이,이 방법 자체는 잘못되었습니다. index.js를 실행하면 다음 오류가 발생합니다.
> Node Index.js> 연결 오류 : {[오류 : unclosed 연결을 열려고합니다.] 상태 : 2}오류는 다음과 같습니다. unded 연결을 열어보십시오.
따라서 데이터베이스에 한 곳에서 한 번 연결 한 다음 데이터베이스에 연결 해야하는 다른 모듈 이이 모듈을 통해 데이터베이스와 상호 작용해야합니다. 그것은 배선 보드와 같았고 그는 망설이지 않고 소리 쳤다. "벽에 단 하나의 소켓이 있습니다. 강탈하지 마십시오! 나를 가자! 당신 ... 괜찮아요!"
특정 계획
데이터베이스에 연결하는 작업을 모듈에 넣고 전체 응용 프로그램의 다른 모듈에 연결을 노출 한 다음 데이터베이스에 연결 해야하는 다른 모듈 에서이 연결을 참조 할 수 있습니다.
// ----- database.js ----- var m = require ( 'mongoose'); m.connect ( 'mongodb : // localhost/test'); // 데이터베이스 연결에 대한 참조 var db = m.connection; // database.js를 참조하는 모듈에 노출되는이 연결에 대한 참조를 작성합니다. ----- user.js ----- flight.js 유사한 -----/... 일부 다른 코드 ... // 우리는 Models.js module.exports = function (db) {if (db) {// ... 연결을 통해 작업을 수행 할 수 있다면 Database-Related Operations를 수행 할 수 있다면} //----- //, ------------------------------------------ // 데이터베이스 연결에 대한 참조를 검색하고 데이터베이스 모듈을 참조하고 데이터베이스 연결 var db = require ( './ database')에 대한 참조를 가져옵니다. // 데이터베이스 연결에 대한 참조를 데이터베이스에 연결 해야하는 모듈로 전달하면 작업이 완료됩니다! var user = require ( './ user') (db), flight = require ( './ flight') (db);이것은 데이터베이스 연결을 공유하기 위해 Node.js 응용 프로그램의 여러 모듈을 가져 오는 한 가지 방법입니다. 나는 stackoverflow에서 그것을 보았다. 더 나은 방법이 있다면 의견에서 공유하십시오!