2016-12-06 32 views
0

我試圖連接到生產的mlab db和我的本地數據庫進行開發。據我可以告訴我的NODE_ENV已設置爲生產。但是因爲我看不懂,所以我懷疑它是以某種方式搞砸了。另外,我一直連接到我的開發數據庫。

我運行我的mongod實例。在另一個cli中,導航到我的應用程序文件夾,該文件夾包含我的app.js文件。我正在遵循一個教程,說運行

process.env.NODE_ENV 

但是,我知道這個命令不被識別。所以我檢查我的NODE_ENV變量使用:set 我得到NODE_ENV=production,我以前設置。然而。當我使用npm start運行我的應用時,我仍然連接到我的開發服務器。這裏是我的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'); 

不知道從哪裏開始尋找。我用盡了我的谷歌搜索。

回答

0

所以,我發現這條評論的條款在回答 https://stackoverflow.com/a/9250168/5574017 顯然,在Windows中,set NODE_ENV=production應該在你房子app.js

目錄執行我仍然無法讀取我的$ process.env.NODE_ENV

但我可以用set來讀取它,然後搜索NODE_ENV

對不起,如果我浪費了你的時間。

謝謝,夥計們。