2014-12-26 3 views
2

Я пытаюсь использовать пакет foreman, чтобы узнать, будет ли способ установки моего файла .env работать с использованием в одном из моих файлов JS, но когда я запускаю nf start server.js Я получаю следующие предупреждения, а затем сервер никогда не запускается. Я думал, что это было связано с не вызывая переменную в файле server.js, но это ничего не изменилоИспользование значения .ENV в NodeJS, ошибка требуемого ключа в определении прокси-файла

[OKAY] Loaded ENV .env File as KEY=VALUE Format 
[WARN] No Procfile Found 
[OKAY] package.json file found - trying 'npm start' 
[OKAY] Trimming display Output to 55 Columns 
[WARN] Required Key 'server.js' Does Not Exist in Procfile Definition 

Вот как я использую мой .env файл:

.env

DB_CONFIGURATION=mongodb://<user>:<pw>.mongolab.com:6383219/db-name 

blogDB.js:

var DB_CONFIG = process.env.DB_CONFIGURATION; 

module.exports = { 
    url : DB_CONFIG; 
} 

server.js (Где я звоню файл blogDB)

//Load express 
var express = require('express'); 
var app = express(); 
var router = express.Router(); // get an instance of the router 
var bodyParser = require('body-parser'); // configure app to use bodyParser() 
var mongoose = require('mongoose'); 
var passport = require('passport'); 
var flash = require('connect-flash'); 
var morgan = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var session = require('express-session'); 

app.use(bodyParser.urlencoded({ extended: true})); // get data from a POST method 
app.use(bodyParser.json()); 
app.use(morgan('dev')); 
app.use(cookieParser()); 


var port = process.env.PORT || 8080; // set the port 


var blogDB = require('./config/blogDB.js'); 
mongoose.connect(blogDB.url); 

require('./config/passport.js')(passport); 


app.set('view engine', 'ejs'); // set ejs as the view engine 

app.use(express.static(__dirname + '/public')); // set the public directory 

app.use(session({ secret: 'thisisatest' })); 
app.use(passport.initialize()); 
app.use(passport.session()); 

app.use(flash()); 



var routes = require('./app/routes'); 

app.use(routes); // use routes.js 


app.listen(port); 
console.log('magic is happening on port' + port); 

ответ

1

Для использования Форман вам нужно создать файл с именем Procfile в корневом каталоге вашего проекта - этот файл говорит старшина, как запустить свой проект.

В этом файле вы можете поместить строку:

web: node server.js 

Или, независимо команда используется для «запуска» вашего веб-сервиса. Затем, если вы запустите foreman start из командной строки, бригадир проанализирует файл Procfile, а затем запустит эту команду для вас (node server.js).

+1

Спасибо. Это исправило мою проблему. – cphill