2016-12-06 2 views
0

프로덕션 용 mlab db와 개발 용 로컬 db에 연결하려고합니다. 내가 말할 수있는 한 내 생산은 NODE_ENV으로 설정되어 있습니다. 그러나 나는 그것을 읽을 수 없기 때문에 어떻게 든 엉망이라고 의심합니다. 또한 내 dev db에 계속 연결합니다.

나는 mongod 인스턴스를 실행합니다. 다른 cli에서 내 app.js 파일이있는 내 앱 폴더로 이동합니다. 나는 실행하라는 지침서를 따른다.

process.env.NODE_ENV 

그러나 나는이 명령을 인식하지 못한다. 그래서 내 NODE_ENV 변수를 사용하여 확인 : set 나는 이전에 설정했다 NODE_ENV=production, 얻을. 하나. npm start을 사용하여 앱을 실행해도 내 dev 서버에 계속 연결됩니다. 여기 내 db.js code입니다 :

var mongoose = require('mongoose'); 
var gracefulShutdown; 
var dbURI = 'mongodb://localhost/Loc8r'; 

if(process.env.NODE_ENV == 'production'){ 
console.log('we are in production'); 
    dbURI = 'mongodb://username:[email protected]:55555/dbname' 
} 
mongoose.connect(dbURI); 


// to address mongoose closing issues in windows 
var readLine = require('readline'); 
if (process.platform === "win32"){ 
    var rl = readLine.createInterface({ 
     input: process.stdin, 
     output: process.stdout 
    }); 
    rl.on ("SIGINT", function(){ 
     process.emit ("SIGINT"); 
    }); 
} 
// close Mongoose connection, passing in an anonymous function to run when closed 
gracefulShutdown = function(msg, callback){ 
    mongoose.connection.close(function(){ 
     console.log("Mongoose disconnected through " + msg); 
     callback(); 
    }); 
}; 

mongoose.connection.on('connected', function(){ 
    console.log('Mongoose connected to ' + dbURI); 
}); 

mongoose.connection.on('error', function(err){ 
    console.log('Mongoose connection error: ' + err); 
}); 

mongoose.connection.on('disconnected', function(){ 
    console.log('Mongoose disconnected'); 
}); 

// for nodemon termination 
process.once('SIGUSR2', function(){ 
    gracefulShutdown('nodemon restart', function(){ 
     process.kill(process.pid, 'SIGUSR2'); 
    }); 
}); 

// for app termination 
process.on('SIGINT', function(){ 
    gracefulShutdown('app termination', function(){ 
     process.exit(0); 
    }); 
}); 

// for HEroku termination 
process.on('SIGTERM', function(){ 
    gracefulShutdown('Heroku app shutdown', function(){ 
     process.exit(0); 
    }); 
}); 

require('./locations'); 

어디서부터 시작 해야할지 잘 모르겠습니다. 나는 내 Google 검색을 다 써 버렸다.

답변

0

그래서, Windows에서, set NODE_ENV=production 아직도 내가 읽을 수 없습니다 당신이 app.js

을 수용 디렉토리에 실행해야 https://stackoverflow.com/a/9250168/5574017 분명히이 댓글의 절에서 답을 찾아 내 $ process.env.NODE_ENV

하지만, set으로 읽은 다음 NODE_ENV을 검색 할 수 있습니다.

죄송합니다. 시간을 낭비하면 죄송합니다.

감사합니다.

관련 문제