내가 node.js. 위에 express.js를 사용하여 간단한 웹 서버를 만들고 있어요Node.js : 모듈 상속을 수행하는 올바른 방법은 무엇입니까?
배경 내 서버를위한 경로 처리기를 만들 때 필연적으로 몇 가지 일반적인 기능을 제외해야합니다. 그래서 DB 연결과 같은 모든 공통 처리기 기능을 가진 baseHandler를 만들고 싶습니다. 다른 경로 처리기를 작성할 때 baseHandler를 손쉽게 확장하여 일반적인 처리기 기능을 얻고 싶습니다.
내가 노력하고 무엇
그것을 달성하는 방법은 무엇이며, 그렇게 할 수있는 올바른 방법은 무엇입니까? 꽤 간단한 솔루션을 시도하고 있는데, baseHandler를 일반적인 핸들러 모듈로 작성하고 로컬 mysql 인스턴스를 가지고 데이터베이스를 조작하는 함수를 내 보냅니다. 아래 코드 :
// Mysql
var _mysql = require('mysql');
// Mysql connection
exports.getDbHandle = function() {
var mysql = _mysql.createConnection({
host: xxx
port: xxx
user: xxx
password: xxx
database: xxx
});
return mysql;
};
내 경로 처리기에서이 모듈을 요구하고 기능을 사용하면됩니다. 이것은 문제를 해결하는 것으로 보이지만, 나는 그것이 올바른 방법이 아니라고 생각합니다. 내 경로 처리기에서 baseHandler 모듈의 인스턴스를 갖게되며 자체적으로 경로 처리기의 일부가 아니라 유틸리티 모듈처럼 느껴집니다.
질문
그래서 nodejs에서 모듈을 확장하는 올바른 방법은 무엇입니까?
답변 해 주셔서 감사합니다.하지만 읽은 후에 더 많은 질문이 있습니다. Node.js의 초보자입니다. 답변을 완전히 이해할 수없는 것 같습니다. 미들웨어를 경로에 연결하는 방법에 대해 자세히 설명해 주시겠습니까? 요청 개체에 속성을 추가하려면 어떻게해야합니까? 전체 흐름은 무엇입니까? –
@Xavier_Ex 경로 미들웨어 주제에 대해 [이 블로그 게시물] (https://blog.caurea.org/2011/11/05/express-route-middleware-chains.html)을보십시오. CoffeeScript 예제 코드를 사용하지만 익숙하지 않더라도 그 요점을 파악할 수 있어야합니다. – JohnnyHK
감사합니다. 먼저 그것에 대해 조금 읽을 것입니다. –