#node.js #express #heroku #require
#node.js #выразить #heroku #требовать
Вопрос:
Я хочу запустить свой проект NodeJS на heroku, но это не работает, пока мой проект работает нормально локально.
Когда я ввожу «heroku logs —tail», чтобы увидеть ошибки, я вижу :
2020-08-18T10:39:44.396002 00:00 app[web.1]: const express = require('express')
2020-08-18T10:39:44.396003 00:00 app[web.1]: ^
2020-08-18T10:39:44.396003 00:00 app[web.1]:
2020-08-18T10:39:44.396004 00:00 app[web.1]: ReferenceError: require is not defined
Это мой «index.js » :
const express = require('express')
if (process.env.NODE_ENV === 'dev') require('dotenv').config()
const routerIdeas = require('./routes/ideas.js')
const PORT = process.env.PORT || 5000
const app = express()
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*")
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept")
next()
})
app.use('/api', routerIdeas)
app.listen(PORT, () => {
console.log(`Server is running on port : ${PORT}`)
})
Это полные «журналы heroku —tail» :
server git:(master) heroku logs --tail
› Warning: heroku update available from 7.7.7 to 7.42.6
2020-08-18T10:17:04.311750 00:00 app[web.1]: (node:4) ExperimentalWarning: The ESM module loader is experimental.
2020-08-18T10:17:04.322224 00:00 app[web.1]: file:///app/index.js:1
2020-08-18T10:17:04.322225 00:00 app[web.1]: const express = require('express')
2020-08-18T10:17:04.322226 00:00 app[web.1]: ^
2020-08-18T10:17:04.322226 00:00 app[web.1]:
2020-08-18T10:17:04.322227 00:00 app[web.1]: ReferenceError: require is not defined
2020-08-18T10:17:04.322227 00:00 app[web.1]: at file:///app/index.js:1:17
2020-08-18T10:17:04.322228 00:00 app[web.1]: at ModuleJob.run (internal/modules/esm/module_job.js:139:37)
2020-08-18T10:17:04.322228 00:00 app[web.1]: at async Loader.import (internal/modules/esm/loader.js:179:24)
2020-08-18T10:17:04.372043 00:00 heroku[web.1]: Process exited with status 1
2020-08-18T10:17:04.401546 00:00 heroku[web.1]: State changed from starting to crashed
2020-08-18T10:39:40.712443 00:00 heroku[web.1]: State changed from crashed to starting
2020-08-18T10:39:42.672554 00:00 heroku[web.1]: Starting process with command `node index.js`
2020-08-18T10:39:44.381963 00:00 app[web.1]: (node:4) ExperimentalWarning: The ESM module loader is experimental.
2020-08-18T10:39:44.396000 00:00 app[web.1]: file:///app/index.js:1
2020-08-18T10:39:44.396002 00:00 app[web.1]: const express = require('express')
2020-08-18T10:39:44.396003 00:00 app[web.1]: ^
2020-08-18T10:39:44.396003 00:00 app[web.1]:
2020-08-18T10:39:44.396004 00:00 app[web.1]: ReferenceError: require is not defined
2020-08-18T10:39:44.396005 00:00 app[web.1]: at file:///app/index.js:1:17
2020-08-18T10:39:44.396005 00:00 app[web.1]: at ModuleJob.run (internal/modules/esm/module_job.js:139:37)
2020-08-18T10:39:44.396008 00:00 app[web.1]: at async Loader.import (internal/modules/esm/loader.js:179:24)
2020-08-18T10:39:44.439811 00:00 heroku[web.1]: Process exited with status 1
2020-08-18T10:39:44.472252 00:00 heroku[web.1]: State changed from starting to crashed
2020-08-18T10:41:22.000000 00:00 app[api]: Build started by user mika77290@live.fr
2020-08-18T10:41:49.742104 00:00 app[api]: Release v6 created by user mika77290@live.fr
2020-08-18T10:41:49.742104 00:00 app[api]: Deploy 36bf1d35 by user mika77290@live.fr
2020-08-18T10:41:50.000000 00:00 app[api]: Build succeeded
2020-08-18T10:41:50.965669 00:00 heroku[web.1]: State changed from crashed to starting
2020-08-18T10:41:53.104246 00:00 heroku[web.1]: Starting process with command `node index.js`
2020-08-18T10:41:54.814879 00:00 app[web.1]: (node:4) ExperimentalWarning: The ESM module loader is experimental.
2020-08-18T10:41:54.832290 00:00 app[web.1]: file:///app/index.js:1
2020-08-18T10:41:54.832292 00:00 app[web.1]: const express = require('express')
2020-08-18T10:41:54.832292 00:00 app[web.1]: ^
2020-08-18T10:41:54.832293 00:00 app[web.1]:
2020-08-18T10:41:54.832294 00:00 app[web.1]: ReferenceError: require is not defined
2020-08-18T10:41:54.832294 00:00 app[web.1]: at file:///app/index.js:1:17
2020-08-18T10:41:54.832294 00:00 app[web.1]: at ModuleJob.run (internal/modules/esm/module_job.js:139:37)
2020-08-18T10:41:54.832295 00:00 app[web.1]: at async Loader.import (internal/modules/esm/loader.js:179:24)
2020-08-18T10:41:54.882959 00:00 heroku[web.1]: Process exited with status 1
2020-08-18T10:41:54.911539 00:00 heroku[web.1]: State changed from starting to crashed
2020-08-18T10:41:57.989717 00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=exercice-ideas.herokuapp.com request_id=909d0f01-935e-4d95-bbf0-80e745d61559 fwd="81.249.233.246" dyno= connect= service= status=503 bytes= protocol=https
2020-08-18T10:42:08.284424 00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/api/ideas" host=exercice-ideas.herokuapp.com request_id=011b8593-6112-48a0-aa6e-d4c7ab5051b5 fwd="81.249.233.246" dyno= connect= service= status=503 bytes= protocol=https
2020-08-18T10:52:39.587775 00:00 heroku[web.1]: State changed from crashed to starting
2020-08-18T10:52:41.637962 00:00 heroku[web.1]: Starting process with command `node index.js`
2020-08-18T10:52:43.235694 00:00 app[web.1]: (node:4) ExperimentalWarning: The ESM module loader is experimental.
2020-08-18T10:52:43.250839 00:00 app[web.1]: file:///app/index.js:1
2020-08-18T10:52:43.250841 00:00 app[web.1]: const express = require('express')
2020-08-18T10:52:43.250846 00:00 app[web.1]: ^
2020-08-18T10:52:43.250846 00:00 app[web.1]:
2020-08-18T10:52:43.250847 00:00 app[web.1]: ReferenceError: require is not defined
2020-08-18T10:52:43.250847 00:00 app[web.1]: at file:///app/index.js:1:17
2020-08-18T10:52:43.250848 00:00 app[web.1]: at ModuleJob.run (internal/modules/esm/module_job.js:139:37)
2020-08-18T10:52:43.250848 00:00 app[web.1]: at async Loader.import (internal/modules/esm/loader.js:179:24)
2020-08-18T10:52:43.292178 00:00 heroku[web.1]: Process exited with status 1
2020-08-18T10:52:43.323908 00:00 heroku[web.1]: State changed from starting to crashed
2020-08-18T11:15:25.594409 00:00 heroku[web.1]: State changed from crashed to starting
2020-08-18T11:15:28.438563 00:00 heroku[web.1]: Starting process with command `node index.js`
2020-08-18T11:15:30.865146 00:00 app[web.1]: (node:4) ExperimentalWarning: The ESM module loader is experimental.
2020-08-18T11:15:30.883077 00:00 app[web.1]: file:///app/index.js:1
2020-08-18T11:15:30.883079 00:00 app[web.1]: const express = require('express')
2020-08-18T11:15:30.883080 00:00 app[web.1]: ^
2020-08-18T11:15:30.883081 00:00 app[web.1]:
2020-08-18T11:15:30.883081 00:00 app[web.1]: ReferenceError: require is not defined
2020-08-18T11:15:30.883081 00:00 app[web.1]: at file:///app/index.js:1:17
2020-08-18T11:15:30.883082 00:00 app[web.1]: at ModuleJob.run (internal/modules/esm/module_job.js:139:37)
2020-08-18T11:15:30.883083 00:00 app[web.1]: at async Loader.import (internal/modules/esm/loader.js:179:24)
2020-08-18T11:15:30.934853 00:00 heroku[web.1]: Process exited with status 1
2020-08-18T11:15:30.968511 00:00 heroku[web.1]: State changed from starting to crashed
2020-08-18T11:33:00.000000 00:00 app[api]: Build started by user mika77290@live.fr
2020-08-18T11:33:34.000000 00:00 app[api]: Build succeeded
2020-08-18T11:33:34.073417 00:00 app[api]: Release v7 created by user mika77290@live.fr
2020-08-18T11:33:34.073417 00:00 app[api]: Deploy f5b59800 by user mika77290@live.fr
2020-08-18T11:33:35.255435 00:00 heroku[web.1]: State changed from crashed to starting
2020-08-18T11:33:37.308185 00:00 heroku[web.1]: Starting process with command `node index.js`
2020-08-18T11:33:39.745180 00:00 app[web.1]: (node:4) ExperimentalWarning: The ESM module loader is experimental.
2020-08-18T11:33:39.758881 00:00 app[web.1]: file:///app/index.js:21
2020-08-18T11:33:39.758883 00:00 app[web.1]: const express = require('express')
2020-08-18T11:33:39.758884 00:00 app[web.1]: ^
2020-08-18T11:33:39.758884 00:00 app[web.1]:
2020-08-18T11:33:39.758885 00:00 app[web.1]: ReferenceError: require is not defined
2020-08-18T11:33:39.758885 00:00 app[web.1]: at file:///app/index.js:21:17
2020-08-18T11:33:39.758885 00:00 app[web.1]: at ModuleJob.run (internal/modules/esm/module_job.js:139:37)
2020-08-18T11:33:39.758886 00:00 app[web.1]: at async Loader.import (internal/modules/esm/loader.js:179:24)
2020-08-18T11:33:39.804994 00:00 heroku[web.1]: Process exited with status 1
2020-08-18T11:33:39.836710 00:00 heroku[web.1]: State changed from starting to crashed
2020-08-18T11:33:39.838855 00:00 heroku[web.1]: State changed from crashed to starting
2020-08-18T11:33:41.998743 00:00 heroku[web.1]: Starting process with command `node index.js`
2020-08-18T11:33:44.652533 00:00 app[web.1]: (node:4) ExperimentalWarning: The ESM module loader is experimental.
2020-08-18T11:33:44.674413 00:00 app[web.1]: file:///app/index.js:21
2020-08-18T11:33:44.674415 00:00 app[web.1]: const express = require('express')
2020-08-18T11:33:44.674415 00:00 app[web.1]: ^
2020-08-18T11:33:44.674416 00:00 app[web.1]:
2020-08-18T11:33:44.674416 00:00 app[web.1]: ReferenceError: require is not defined
2020-08-18T11:33:44.674417 00:00 app[web.1]: at file:///app/index.js:21:17
2020-08-18T11:33:44.674417 00:00 app[web.1]: at ModuleJob.run (internal/modules/esm/module_job.js:139:37)
2020-08-18T11:33:44.674418 00:00 app[web.1]: at async Loader.import (internal/modules/esm/loader.js:179:24)
2020-08-18T11:33:44.736273 00:00 heroku[web.1]: Process exited with status 1
2020-08-18T11:33:44.780957 00:00 heroku[web.1]: State changed from starting to crashed
2020-08-18T11:33:46.586184 00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=exercice-ideas.herokuapp.com request_id=af66c9bb-71fb-4575-a9b2-856ef0fd7c92 fwd="81.249.233.246" dyno= connect= service= status=503 bytes= protocol=https
Я попытался запустить тестовый проект, представленный в руководстве Heroku starter, и проблем с «требовать» нет, поэтому я не понимаю.
Заранее благодарю всех, кто может мне помочь
Ответ №1:
У меня была такая же проблема, и то, что я сделал, было в package.json
файле, который я удалил type:module
, и это сработало.
Комментарии:
1. У меня это тоже сработало. Если кто-нибудь знает почему, пожалуйста, сообщите.
Ответ №2:
Я удалил файлы ‘.git’ и ‘Procfile’. Я также удаляю репозиторий на Heroku и создаю новый. Затем я снова запускаю процедуру, чтобы связать мой проект с новым репозиторием. Затем я запустил проект, и теперь ошибок больше нет.
Я не понимаю, почему, но это работает сейчас.