우선 Node.js의 첫 번째 프로젝트 중 하나이기 때문에 새로운 개념입니다.데이터베이스를 사용하는 노드 - 비누 서비스 (종속성 문제)
필자는 Oracle 데이터베이스에 연결하는 SOAP (backward-compatibility, huh?) 인터페이스를 만들고 싶습니다.
그래서이 함수들이 어떻게 보이는지 (주소 및 내용에 대한 유효성 검사) WSDL이 있으며 데이터베이스에 연결되어 있습니다.
이제 SOAP npm 모듈을 사용할 때 서버를 만들고 요청에 응답 할 수있는 서비스를 청취해야합니다. SOAP 서비스가 포함 된 별도의 파일이 있지만이 서비스는 결과를 얻기 위해 데이터베이스에서 쿼리를 수행해야합니다.
SOAP 호출이 완료 될 때마다 내 데이터베이스 서비스의 올바른 메소드로이 데이터를 조율 할 수 있도록 내 SOAP 서비스에 데이터베이스 서비스를 '주입'하는 방법은 어떻게됩니까?
이 내 코드는 모습입니다 :
var DatabaseService = function (connection) {
this.database = connection;
};
function doSomething(callback) {
if (!this.database) { console.log('Database not available.'); return; }
this.database.execute('SELECT * FROM HELP', function(err, result) {
callback(result);
});
};
module.exports = {
DatabaseService: DatabaseService,
doSomething: doSomething
};
soapservice.js을
databaseconnection.js
var oracledb = require('oracledb');
var dbConfig = require('../../config/development');
var setup = exports.setup = (callback) => {
oracledb.createPool (
{
user : dbConfig.user,
password : dbConfig.password,
connectString : dbConfig.connectString
},
function(err, pool)
{
if (err) { console.error(err.message); return; }
pool.getConnection (
function(err, connection)
{
if (err) {
console.error(err.message);
return callback(null);
}
return callback(connection);
}
);
}
);
};
databaseservice.js
var myService = {
CVService: {
CVServicePort: {
countryvalidation: function (args, cb, soapHeader) {
console.log('Validating Country');
cb({
name: args
});
}
}
}
};
app.use(bodyParser.raw({type: function(){return true;}, limit: '5mb'}));
app.listen(8001, function(){
databaseconnection.setup((callback) => {
var temp = databaseservice.DatabaseService(callback);
soapservice.Init(temp);
var server = soap.listen(app, '/soapapi/*', soapservice.myService, xml);
databaseservice.doSomething((result) => {
console.log(result.rows.length, ' results.');
});
});
console.log('Server started');
});
가 어떻게 대신 countryvalidation 비누 방법에 databaseservice.doSomething()를 추가하는 방법에 대한 갈 것이라고 server.js '이름 : 인수'?
기타 : 내 코드의 구조가 매우 지저분 해 보인다. 나는 코드를 온라인으로 구조화하는 방법에 대한 좋은 예를 찾아 보았지만 서비스와 데이터베이스 연결 + 결합에 대해서는별로 찾지 못했다. 이 구조에 대한 모든 의견은 대단히 환영합니다. 나는 결국, 배울 것입니다.
당신에게디터
감사합니다. 나는 링크를 체크 아웃하고 구조가 작동하는 동일한 유형을 얻을 수 있었다.나는 나 자신을 알아낼 수 있어야한다. 정말 고마워. – syntax1993