일부 데이터베이스 쿼리를 수행하는 node.js 스크립트가 있는데 정상적으로 작동합니다. 스크립트가 조금 더 길어지기 시작 했으므로 데이터베이스 연결 코드를 다른 파일로 옮겨 놓은 것이 합리적이라고 생각했습니다.node.js - 내보내기 변수 오류 필요
다음은 내가 다른 파일로 옮긴 다음 require 문에 포함시킨 코드입니다.
내가 겪고있는 문제는 스크립트 맨 아래의 '내보내기'명령에 있습니다. 'dbHandleDisconnectUsers()'함수는 올바르게 반출되지만 'dbConnectionUsers'변수는 반출되지 않습니다.
스크립트 오류는 'dbConnectionUsers'객체의 메소드를 참조합니다. (올바른 터미널 문자가 필요합니다.) 누락되어 실제로 완전한 객체를 전달하지 못하고 있다는 인상을줍니다. 참고 : 나는 정확한 오류를 포함 시키겠다. 그러나 나는 기계 앞에 없다. 핵심 스크립트에서
var mysql = require('/usr/lib/node_modules/mysql');
// Users Database Configuration
var dbConnectionUsers;
var dbConfigurationUsers = ({
host : 'xxxxx',
user : 'xxxxx',
password : 'xxxxx',
database : 'xxxxxx',
timezone : 'Asia/Singapore'
});
// Users Database Connection & Re-Connection
function dbHandleDisconnectUsers() {
dbConnectionUsers = mysql.createConnection(dbConfigurationUsers);
dbConnectionUsers.connect(function(err) {
if(err) {
console.log('Users Error Connecting to Database:', err);
}else{
dbConnectionUsers.query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
dbConnectionUsers.query("SET SESSION sql_mode = 'ANSI';");
dbConnectionUsers.query("SET NAMES UTF8;");
dbConnectionUsers.query("SET time_zone='Asia/Singapore';");
}
});
dbConnectionUsers.on('error', function(err) {
console.log('Users Database Protocol Connection Lost: ', err);
if(err.code === 'PROTOCOL_CONNECTION_LOST') {
dbHandleDisconnectUsers();
} else {
throw err;
}
});
}
dbHandleDisconnectUsers();
exports.dbHandleDisconnectUsers() = dbHandleDisconnectUsers();
exports.dbConnectionUsers = dbConnectionUsers;
나는이 문 필요가 있습니다
var database = require('database-connect.js');
을 그리고
database.dbHandleDisconnectUsers()
database.dbConnectionUsers
'exports.dbHandleDisconnectUsers() = ...'는'exports.dbHandleDisconnectUsers()'의 결과에 * 값을 할당하려고합니다. 일반적으로 불가능합니다 (왜냐하면 재미의 결과 ction 호출은 변수 참조가 아닙니다). (전체 공개 : 함수는 * 참조를 반환 할 수 있지만 [호스트 객체 만 가능] (http://www.ecma-international.org/ecma-262/5.1/#sec-8.7), 정규 JS가 아닌 code.) 어쨌든'exports.dbHandleDisconnectUsers'는 아직 정의되지 않았기 때문에 아직 호출 할 함수가 없습니다. – apsillers