无法使用 Windows 读取 $ process.env.NODE_ENV
Cannot read $ process.env.NODE_ENV using Windows
我正在尝试连接到用于生产的 mlab 数据库和用于开发的本地数据库。据我所知,我的 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:password@ds55555.mlab.com: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 个搜索。
所以,我在这条评论的一个条款中找到了答案
显然,在Windows中,set NODE_ENV=production
应该在你所在的目录中执行app.js
我还是看不懂 $ process.env.NODE_ENV
但我可以用 set
阅读它,然后搜索 NODE_ENV
对不起,如果我浪费了你的时间。
谢谢大家。
我正在尝试连接到用于生产的 mlab 数据库和用于开发的本地数据库。据我所知,我的 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:password@ds55555.mlab.com: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 个搜索。
所以,我在这条评论的一个条款中找到了答案
显然,在Windows中,set NODE_ENV=production
应该在你所在的目录中执行app.js
我还是看不懂 $ process.env.NODE_ENV
但我可以用 set
阅读它,然后搜索 NODE_ENV
对不起,如果我浪费了你的时间。
谢谢大家。