【发布时间】:2022-01-25 16:19:00
【问题描述】:
所以构建运行了,但它显然没有使用正确的 package.json 文件,因为它获得的唯一依赖项是 npm。当我到达我部署的网站时,我从 Heroku 收到默认的应用程序错误。这些是构建日志:
这是我的文件布局的样子: Visual Studio
这是 server.js 文件:
const express = require('express')
const mongoose = require('mongoose')
const PORT = process.env.PORT || 3000
const jwtAuth = require("./middleware/jwtAuth")
require("dotenv").config()
const cors = require('cors');
const authRoutes = require('./routes/auth')
const orderRoutes = require('./routes/order')
const axios = require('axios')
const corsOptions = {
origin: 'http://localhost:3000',
}
const app = express()
//this will convert the request into json, since node doesn't accept json by default
app.use(express.json());
//this will enable cors on localhost
app.use(cors(corsOptions));
app.use('/api/auth', authRoutes)
app.use('/portfolio', jwtAuth)
app.use('/api/order', orderRoutes)
app.get('/secret', jwtAuth, (req, res) => {
res.send('Secret Hello World!')
})
//fetch testing
app.use('/stock', jwtAuth, function(req, res, next) {
const apikey = "M7DSRJECMBCEEWGF";
const ticker = ['MSFT']
let completed = 0;
const results = [];
console.log(ticker);
for (let i = 0; i < ticker.length; i++) {
const oneTicker = ticker[i];
axios.get(
`https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=${ticker}&apikey=${apikey}`
)
.then((response) => {
completed += 1;
results.push(response.data);
if (completed === ticker.length) {
//All ticker have finished their response
console.log("completed");
res.send({
success: true,
message: "Ticker info",
results,
});
}
console.log(ticker);
})
.catch((e) => {
console.error(e);
});
}
})
app.get('/auth', jwtAuth, (req, res) => {
res.status(200).send("Welcome home, cowboy")
})
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.get('/secret', jwtAuth, (req, res) => {
res.send('Secret Hello World!')
})
app.get('*', (req, res) => {
res.send('This route does not exist')
})
mongoose
.connect(process.env.MONGODB_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(() => {
app.listen(PORT, () => console.log(`Server started on PORT ${PORT}`))
})
.catch((err) => {
console.log(err)
process.exit(1)
})
Heeelp,我真的很想了解 heroku 上的部署是如何工作的! :)
【问题讨论】:
-
你
npm install --save了吗?
标签: node.js reactjs docker heroku deployment