gpt4 book ai didi

node.js - Heroku -dyno停止运行/ sleep ,哪里添加 'var port = process.env.PORT || 3000'

转载 作者:太空宇宙 更新时间:2023-11-03 23:52:43 28 4
gpt4 key购买 nike

我是一名 Swift 开发者,而不是原生 Node.js 开发者,所以我不熟悉这个问题。

我注册了 Heroku,创建了一个应用程序,让免费的 dyno 开始工作,450 小时后我收到一封电子邮件,说您的应用程序已停止运行,并且在您下个月收到更多免费 dyno 小时之前不会重新启动。

我添加了信用卡进行验证,并得到了 additional free 550 hrs 。我立即恢复到 1000 个空闲时间,但是一旦我这样做了,dyno 就再也没有运行过。

刚才(一周后)我运行了

heroku ps -a myAppName

它说我有 1000 小时。

Free dyno hours quota remaining this month: 1000h 0m (100%)
Free dyno usage for this app: 0h 0m (0%)

我刚刚运行了 heroku ps:restart --app myAppName,然后大约 15 分钟后回来查看,它仍然显示我使用了 0h 0m (0%)

我运行 heroku logs --app myAppName 并收到以下错误:

Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch

Stopping process with SIGKILL Process exited with status 137 State

changed from starting to crashed

Heroku says更改端口并添加:

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Our app is running on port ${ PORT }`);
});

假设这就是测功机停止工作/ sleep 的原因,似乎(我对此不熟悉)我需要将端口代码添加到我的 app.js 文件中? 我不知道要添加哪些模块才能使其正常工作。我需要添加什么才能使上述端口代码正常工作?例如。上面代码中的 app 是什么?

我的procfile:

worker: node ./app.js

我的app.js文件

const dotenv = require('dotenv');
dotenv.config();

const admin = require("firebase-admin");
admin.initializeApp({
credential: admin.credential.cert({
projectId: process.env.FIREBASE_PROJECT_ID,
clientEmail: process.env.FIREBASE_CLIENT_EMAIL,
privateKey: process.env.FIREBASE_PRIVATE_KEY.replace(/\\n/g, '\n'),
}),
databaseURL: process.env.FIREBASE_DATABASE_URL
});

const firebase = require('firebase');
const config = {
apiKey: process.env.FIREBASE_API_KEY,
databaseURL: process.env.FIREBASE_DATABASE_URL,
storageBucket: process.env.FIREBASE_STORAGE_BUCKET,GCM_SENDER_ID
};
firebase.initializeApp(config);

const algoliasearch = require('algoliasearch');
// rest of code ...

我的package.json文件:

{
"name": "my project",
"version": "1.0.0",
"description": "Config Files",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node app.js"
},
"author": "Lance Samaria",
"license": "ISC",
"engines": {
"node": "10.16.0"
},
"dependencies": {
"algoliasearch": "^3.35.1",
"dotenv": "^8.2.0",
"firebase": "^7.2.1",
"firebase-admin": "^8.6.1",
"nodejs-latest": "^1.1.0"
}
}

最佳答案

我用谷歌搜索了 herehere并发现我必须安装 express 模块。我用过this answer

$ npm install --save express

然后在 app.js 文件的顶部添加:

var express = require('express');
var app = express();

const PORT = process.env.PORT || 5000;

app.listen(PORT, () => {
console.log(`Server is listening on port ${PORT}`);
});

一旦我安装了上述代码,测功机就再次开始工作。我使用 here 中的 5000 而不是 3000

关于node.js - Heroku -dyno停止运行/ sleep ,哪里添加 'var port = process.env.PORT || 3000',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58749213/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com