#node.js #docker #express #docker-compose
#node.js #docker #экспресс #docker-compose
Вопрос:
Я разработал API с использованием express js, который работает нормально. Я использую VS code и запускаю приложение, выполнив команду «узел app.js » в терминале. Теперь я хочу развернуть этот API на сервере с помощью docker. Я следовал этому руководству: https://github.com/nodejs/docker-node/blob/main/README.md#how-to-use-this-image и я использую опцию docker-compose. Docker-compose.yml:
version: "2"
services:
node:
image: "node:current-alpine3.12"
user: "node"
working_dir: /home/node/app
environment:
- NODE_ENV=production
volumes:
- ./node:/home/node/app
expose:
- "80"
command: "npm start"
Я скопировал все файлы из своего проекта VS code с использованием scp в папку ./node, указанную в файле docker. Затем я получаю эту ошибку при запуске docker-compose up:
TypeError: app.set is not a function
at Object.<anonymous> (/home/node/app/bin/www:16:5)
at Module._compile (node:internal/modules/cjs/loader:1097:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1149:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47
Node.js v17.2.0
npm notice
npm notice New minor version of npm available! 8.1.4 -> 8.2.0
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v8.2.0>
npm notice Run `npm install -g npm@8.2.0` to update!
npm notice
В моем app.js Я не использую app.set. Я читал о том, что у кого-то еще возникли проблемы при настройке порта. Я использую app.listen(80, () => console.log("Listening on port 80"));
для установки правильного порта. Я не уверен, почему я получаю ошибку app.set. Как мне исправить эту проблему?