에 전달 MySQL의 연결은 내가 필요로하거나 client.query(..)
를 사용하여 MySQL의 매개 변수를 재정의하지 않고, 기본적으로 routes/
에서 다른 스크립트를 볼 수있는 방법을 app.js
에 필요한 모든 매개 변수를 사용하여 MySQL의 연결을 정의?익스프레스 - 스크립트
0
A
답변
3
이 같은 다른 스크립트로 mysql을 연결 삽입 할 수 있습니다
이
var mysqlConnection = new Conection(params);
require('controller/main.js)(mysqlConnection);
main.js
을 app.js를module.exports = function(mysqlConnection) {
// You can access your mysql connection here
};
UPDATE :
당신은 삽입 할 수 같은 방법으로 여러 변수.
이
이module.exports = function(app, mysqlConnection) {
var methods = {};
// mysql connection and app available from here
methods.list = function(cb) {
mysqlConnection.list(function(err, data) {
cb(err, data);
});
};
return methods;
};
3
내가 사용하는 패턴은 내 db
객체를 설정하는 것입니다
var mysqlConnection = new Conection(params);
var news = require('model/news.js)(app, mysqlConnection);
news.list(function(err, news) {
// Do something
});
news.js을 app.js :이 필요한 경우에도 당신은 여전히 모듈에서 방법을 내보낼 수 있습니다
//I haven't used real mysql in node so excuse the pseudo-syntax:
var db = require('mysql-driver-thingy');
db.connect('localhost', 'sqlport', options...);
db.otherSetupFunctions();
console.log("Finished db setup. You should only see this message once! Cool.");
module.exports = db;
을 (의이 utils/mySQL.js
를 호출하자) 그리고 나는 REQU 수 있습니다 모듈은 한 번 내보낼 나는 db
개체를 도처에 내가 필요로한다. require
이 캐시되기 때문에 실제로는 설정 방법을 여러 번 호출하지 않습니다.
에서 app.js : 모델 /의 user.js에서
var db = require('./utils/mySQL.js');
...
:
var db = require('../utils/mySQL.js');
...
하지 않는 것이 좋습니다 마지막 옵션은 글로벌 네임 스페이스를 오염하는 것입니다. 심지어 그것을 필요로하지 않고,
//set up your db
...
// and now make it available everywhere:
global.client = db.client
이제 마법처럼 모든 모듈에서 클라이언트 객체를 사용할 수 있습니다 : 이것은 당신이 후에 정말이야 해답이 될 것으로 보인다.
하지만, 많은 이유의 전역 나쁜 있습니다 : 당신의 코드와 다른 코드가 전역을 정의하면
- , 그들은 충돌 서로를 덮어 쓸 수 있습니다.
- 그것은 당신이
db
/client
오브젝트 등을 정의 위치를 찾기 어렵다
관련 문제
- 1. 노드 익스프레스 경로에 자바 스크립트 라이브러리 포함
- 2. 스태틱 자바 스크립트 파일이 익스프레스 앱에로드되지 않았습니다.
- 3. SQL 익스프레스 2008 익스프레스 호환 가능
- 4. 익스프레스 & 제이드,
- 5. 익스프레스 프로덕션
- 6. Visual Studio 2010 익스프레스 에디션 용 자바 스크립트 애드 인
- 7. 변수 HTTP/HTTPS 익스프레스 서버
- 8. node.js 익스프레스 세트 제목
- 9. 템플릿 엔진없이 익스프레스 사용
- 10. connect-mysql-session이있는 익스프레스
- 11. 다국어 익스프레스 앱
- 12. 익스프레스 Node.js preresponse
- 13. NodeJS 익스프레스 사이트
- 14. Node.js를 익스프레스 정규식()
- 15. 링커 VC 2008 익스프레스 :
- 16. 익스프레스 리디렉션은 req.url
- 17. Authorize.net 아메리칸 익스프레스 문제
- 18. 아메리칸 익스프레스 API
- 19. Google 드라이브가있는 TFS 익스프레스
- 20. 익스프레스 + 노드 CSRF 금지
- 21. 익스프레스 루씬은 SOLR
- 22. 익스프레스 C#을 (VS2010)
- 23. 익스프레스/Dust.js - 데이터의보기 배열
- 24. 익스프레스 js 리디렉션 IE의
- 25. Nodejs 익스프레스 - dynamicHelpers 오류
- 26. 타이프 라이터 익스프레스 내가 설치 비주얼 스튜디오 2012 익스프레스 버전 3이
- 27. 페이팔 정기 익스프레스 체크 아웃
- 28. 익스프레스 체크 아웃 토큰 추출하기
- 29. 익스프레스 JS 나는 다음을 수행하려고
- 30. http 동사에서 몽구스/익스프레스 인증
가능한 복제 (http://stackoverflow.com/questions [제대로 express.js와 경로에 MySQL의 연결을 전달하는 방법]/16800418/how-to-proper-pass-mysql-connection-to-express-js) – edjroot
@EdJr 무엇이든 .. 질문 사이의 날짜 차이를 보았습니까? 2012 년 7 월 7 일과 2013 년 5 월 28 일 ... 차이점을 직접 확인할 수 있습니까? – Gntem
이 질문에 플래그가 부여 된 좋은 이유가 있습니다.[this] (https://meta.stackoverflow.com/a/315475/3089595)는 추론을 멋지게 요약하고, 복제본 자체에 대한 (유용한) 링크가 있다는 사실이 또 다른 좋은 예입니다. – edjroot