Это моя первая попытка в Heroku. Я смог «развернуть успешный» на героку, но при посещении моего приложения он говорит: «приложение не выполнено».Развертывание nodejs/mongoose to heroku
Я после этого руководства: https://scotch.io/tutorials/use-mongodb-with-a-node-application-on-heroku
Я думаю, что сложная вещь, потому что я использую Мангуст, он не может хорошо относиться с URI. Я также использую админ mlab.
Вот мои настройки для моего внутреннего интерфейса:
var request = require('request');
var app = express();
var mongoCredentialss = require('/mongo_credentialss.json');
var conn = mongoose.connection;
var path = require('path');
// connect to the database
mongoose.connect('mongodb://' + mongoCredentials.username + ':' + mongoCredentialss.password + '@ds.mlab.com:12345/mydatabase-db');
mongoose.Promise = Promise;
app.listen(3000, function() {
console.log('Listening on 3000...');
});
Я не очень понимаю .env, чтобы заставить его работать на местном уровне, я просто сохраненные имя пользователя и пароль в скрытом файле .json благодаря. gitignore. Из руководства, однако, я просто попытался включить URI прямо в мой файл узла как переменную, чтобы увидеть, работает ли это даже. Я не слишком уверен, как «скрытый» среды работы ...
Позже, когда я начал снова, я продолжал иметь повторяющиеся проблемы с Heroku не обнаруживает свои стандартные buildpacks: набор Heroku/nodejs
* *** EDIT:
Все еще видят некоторые проблемы. Я вынул свой «Монго кредитки», поэтому мой файл server.js теперь выглядит следующим образом:
var express = require('express');
var mongoose = require('mongoose');
mongoose.connect(process.env.MONGODB_URI);
var Promise = require('bluebird');
var bodyParser = require('body-parser');
var randtoken = require('rand-token');
var cors = require('cors');
var request = require('request');
var app = express();
var conn = mongoose.connection;
var fs = require('fs');
var path = require('path');
app.listen(3000, function() {
console.log('Our app is running on http://localhost:' + 3000);
});
Некоторые далее контекст: У меня есть один основной папки проекта, в котором находится 2 вложенные папки: бэкенд и внешний интерфейс. Когда я развертываю его в heroku, я меняю каталог в основную папку, чтобы развернуть все.
Кроме того, если это поможет, вот что мой package.json выглядит следующим образом:
"dependencies": {
"bluebird": "^3.4.1",
"body-parser": "^1.15.2",
"cors": "^2.7.1",
"express": "^4.14.0",
"mongoose": "^4.5.3",
"my-bcrypt": "^1.0.2",
"rand-token": "^0.2.1",
"request": "^2.74.0"
},
"engines": {
"node": "==6.0.0"
}
}
****** EDIT 2: журналы Heroku не могут найти свои 'backend.js' , Прямо сейчас у меня есть один основной каталог папки проекта, внутри которого две папки: ---> backend.js (node) и ---> frontend.js (угловой)
My package.json выглядит как это:
**"main": "frontend.js",**
"scripts": {
**"start": "node backend.js",**
"test": "echo \"Error: no test specified\" && exit 1"
},
Возможно, я не понимаю, как геройку находит мои основные .js-файлы. Исходя из моего понимания, «start» - это файл узла, а «основной» файл - для файлов frontend, таких как угловые/html-файлы.
После перемещения всего из подпапок в основную папку (backend.js, frontend.js, css-файлы, html-файлы), я могу еще раз подтвердить, что я могу запускать свое приложение локально. Но при развертывании FRESH в новом приложении heroku теперь я получаю следующие журналы: 2016-08-27T20: 45: 26.674272 + 00: 00 heroku [web.1]: состояние изменено с разбившегося на 2016-08-27T20: 45: 28.574699 + 00: 00 heroku [web.1]: запуск с командой 'node backend.js' 2016-08-27T20: 45: 30.818329 + 00: 00 heroku [web.1]: процесс завершен со статусом 1 –
2016-08-27T20: 45: 30.753675 + 00: 00 приложение [web.1]: module.js: 341 2016-08-27T20: 45: 30.753686 + 00: 00 приложение [web.1]: throw err; 2016-08-27T20: 45: 30.753687 + 00: 00 приложение [web.1]:^ 2016-08-27T20: 45: 30.753687 + 00: 00 приложение [web.1]: 2016-08-27T20: 45: 30.753692 + 00: 00 app [web.1]: Ошибка: не удается найти модуль '/app/backend.js' 2016-08-27T20: 45: 30.753694 + 00: 00 app [web.1]: at Function .Module._load (module.js: 290: 25) 2016-08-27T20: 45: 30.753693 + 00: 00 app [web.1]: at –
Function.Module._resolveFilename (module.js: 339: 15) 2016-08-27T20: 45: 30.753695 + 00: 00 app [web.1]: at Function.Module.runMain (module.js: 447: 10) 2016-08-27T20: 45: 30.753696 + 00: 00 app [web.1]: при запуске (node.js: 148: 18) 2016-08-27T20: 45: 30.753697 + 00: 00 приложение [web.1]: at node.js: 405: 3 –