Я создал RESTful API с Express и MongoDB Atlas, и я пытаюсь развернуть его на Heroku, но по какой-то причине он не работает (работает на моем локальном хосте).
Я хотел бы получить некоторые ресурсы или совет для развертывания небольшого RESTful API, чтобы затем иметь возможность вызывать его из моего внешнего интерфейса, который еще не создан.
Вот мой server.js
:
const express = require("express");
const app = express();
const appJs = require("./app");
const port = process.env.PORT || 3000
appJs.listen(port, function() {
console.log("listening at " + port);
});
и мой App.js
:
const express = require("express");
const app = express();
const morgan = require("morgan");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const jobRoutes = require("../api/routes/jobs");
const userRoutes = require("../api/routes/user");
mongoose.connect(
`mongodb+srv://myname:${
process.env.MONGO_ATLAS_PW
}@cluster0-z4gre.mongodb.net/test?retryWrites=true`,
{
useNewUrlParser: true
}
);
app.use("/uploads", express.static("uploads"));
app.use(morgan("dev"));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use((req, res, next) => {
res.header("Access-Control-Allow-Origin", "*");
res.header(
"Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept, Authorization"
);
if (req.method === "OPTIONS") {
res.header("Access-Control-Allow-Methods", "PUT, POST, PATCH, DELETE, GET");
return res.status(200).json({});
}
next();
});
Я выполнил все шаги для развертывания на Heroku, но при переходе к имени домена я получил сообщение об ошибке.
Мой API покоя в формате JSON и отлично работает в режиме разработки
Вот ошибка, которую я получаю при переходе по URL Heroku:
Ошибка приложения
В приложении произошла ошибка, и ваша страница не может быть обработана. Если вы являетесь владельцем приложения, проверьте подробности в своих журналах. Это можно сделать из интерфейса командной строки Heroku с помощью команды
heroku logs --tail
мои журналы, которые терпят неудачу:
2019-05-04T22:13:54.658480+00:00 heroku[web.1]: Process exited with status 1
2019-05-04T22:13:54.582531+00:00 app[web.1]:
2019-05-04T22:13:54.582551+00:00 app[web.1]: > cryptojobs@1.0.0 start /app
2019-05-04T22:13:54.582553+00:00 app[web.1]: > nodemon ./server/server.js --exec
2019-05-04T22:13:54.582554+00:00 app[web.1]:
2019-05-04T22:13:54.593393+00:00 app[web.1]: sh: 1: nodemon: not found
2019-05-04T22:13:54.598435+00:00 app[web.1]: npm ERR! file sh
2019-05-04T22:13:54.598644+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2019-05-04T22:13:54.598901+00:00 app[web.1]: npm ERR! errno ENOENT
2019-05-04T22:13:54.599158+00:00 app[web.1]: npm ERR! syscall spawn
nodemon
устанавливается как devDependencies
.