这个错误在这里似乎很流行!该应用程序在本地运行良好,但是当部署到Heroku ... cket时,应用程序崩溃。
这是server.js
var app = express();
var PORT = process.env.PORT || process.env.REACT_APP_PORT;
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
(process.env.NODE_ENV === "production") ? app.use(express.static("build")) : app.use(express.static("public"));
//code goes here
app.use(cors());
app.get('*', function (req, res) {
res.redirect('api/tweets');
})
app.get('api/tweets', function (req, res) {
tweetData.findOne({}, [], { $orderby : { 'created_at' : -1 } }, function(err, post) {
console.log(post);
res.send(post);
});
});
app.listen(PORT, function() {
console.log("App running on port " + PORT);
});
这是日志条目
2020-05-10T00:12:59.057966+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=quarantine-life.herokuapp.com request_id=bd00538a-e6c4-4d33-ab5b-957eca72146f fwd="68.173.68.75" dyno= connect= service= status=503 bytes= protocol=https
这是App.js中的API调用
callTwitterApi = async () => {
await axios.get(my_heroku_app_URL_goes_here)
.then(res => {
//pipeline length control
if (this.state.count === 20){
this.clearTweets();
}
//checking if the tweet is new
this.checkIfNew(res.data);
})
.catch (error => {
this.setState({ error, isLoading: true });
})
this.setState({isLoading: true, isNew: ""});
}
Package.json:
`{
"name": "quarantine-life",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.5.0",
"@testing-library/user-event": "^7.2.1",
"axios": "^0.19.2",
"bootstrap": "^4.4.1",
"cors": "^2.8.5",
"dotenv-webpack": "^1.7.0",
"express": "^4.17.1",
"gh-pages": "^2.2.0",
"http-proxy-middleware": "^1.0.3",
"mongo": "^0.1.0",
"mongoose": "^5.9.10",
"morgan": "^1.10.0",
"nodemon": "^2.0.3",
"react": "^16.13.1",
"react-animated-css": "^1.2.1",
"react-bootstrap": "^1.0.1",
"react-dom": "^16.13.1",
"react-scripts": "3.4.1",
"react-transition-group": "^4.4.0",
"twitter": "^1.7.1"
},
"scripts": {
"start": "react-scripts start & node server.js",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"concurrently": "^5.2.0",
"dotenv": "^8.2.0"
},
"proxy": "HEROKU_URL_GOES_HERE"
}
`
我尝试了以下方法
对此菜鸟有任何帮助,不胜感激!
最佳答案
检查您的构建包
输入以下命令:
heroku buildpacks
您应该看到以下内容:
1. heroku/nodejs
如果不是,则必须安装它才能解决H10错误:
Heroku buildpack for nodejs。
----更新----
我刚刚注意到您使用 create-react-app 来构建您的应用程序。
因此,只需安装所需的buildpack即可摆脱H10:
heroku buildpacks:set mars/create-react-app