【发布时间】:2019-09-23 01:02:10
【问题描述】:
我使用 Express 和 MongoDB Atlas 创建了一个 RESTful API,我正在尝试在 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 上部署的所有步骤,但是当我转到域名时收到一条错误消息。
我的 Restful API 是 JSON 格式,在开发模式下可以完美运行
这是我在访问 Heroku URL 时遇到的错误:
应用程序错误
应用程序发生错误,无法提供您的页面。如果您是应用程序所有者,请查看您的日志以获取详细信息。您可以在 Heroku CLI 中使用以下命令完成此操作
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。
【问题讨论】:
标签: node.js express heroku deployment mongodb-atlas