Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js错误:找不到模块(本地文件)_Node.js_Docker - Fatal编程技术网

Node.js错误:找不到模块(本地文件)

Node.js错误:找不到模块(本地文件),node.js,docker,Node.js,Docker,我正在跟踪Node.js,当我运行npm start时,项目就开始工作了。当我运行docker run(options)时,会生成生成,但我会在下面的日志中找到错误。这个项目是赤裸裸的、简单的、直截了当的,我不确定我在这里遗漏了什么。我之前在生产中遇到了一个非常类似的错误(对于Heroku,没有Docker),本地运行看起来不错,而实时部署也遇到了类似的错误 我不确定我是否使用了过时的东西,但我更新了npm,docker,不确定还有什么可以 感谢您的帮助 错误: internal/module

我正在跟踪Node.js,当我运行
npm start
时,项目就开始工作了。当我运行
docker run(options)
时,会生成生成,但我会在下面的日志中找到错误。这个项目是赤裸裸的、简单的、直截了当的,我不确定我在这里遗漏了什么。我之前在生产中遇到了一个非常类似的错误(对于Heroku,没有Docker),本地运行看起来不错,而实时部署也遇到了类似的错误

我不确定我是否使用了过时的东西,但我更新了npm,docker,不确定还有什么可以

感谢您的帮助


错误:

internal/modules/cjs/loader.js:969

throw err;

^


Error: Cannot find module '/usr/src/app/server.js'

at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)

at Function.Module._load (internal/modules/cjs/loader.js:842:27)

at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)

at internal/main/run_main_module.js:17:47 {

code: 'MODULE_NOT_FOUND',

requireStack: []

}
{
  "name": "SampleProject",
  "version": "1.0.0",
  "description": "Node.js on Docker",
  "author": "First Last <first.last@example.com>",
  "main": "server.js",
  "scripts": {
    "start": "node server.js",
    "dock": "docker run -p 1234:1234 -d <My>/<Info>"
  },
  "dependencies": {
    "core-util-is": "^1.0.2",
    "express": "^4.17.1"
  }
}
npm run dock
目录:

internal/modules/cjs/loader.js:969

throw err;

^


Error: Cannot find module '/usr/src/app/server.js'

at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)

at Function.Module._load (internal/modules/cjs/loader.js:842:27)

at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)

at internal/main/run_main_module.js:17:47 {

code: 'MODULE_NOT_FOUND',

requireStack: []

}
{
  "name": "SampleProject",
  "version": "1.0.0",
  "description": "Node.js on Docker",
  "author": "First Last <first.last@example.com>",
  "main": "server.js",
  "scripts": {
    "start": "node server.js",
    "dock": "docker run -p 1234:1234 -d <My>/<Info>"
  },
  "dependencies": {
    "core-util-is": "^1.0.2",
    "express": "^4.17.1"
  }
}
npm run dock

package.json:

internal/modules/cjs/loader.js:969

throw err;

^


Error: Cannot find module '/usr/src/app/server.js'

at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)

at Function.Module._load (internal/modules/cjs/loader.js:842:27)

at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)

at internal/main/run_main_module.js:17:47 {

code: 'MODULE_NOT_FOUND',

requireStack: []

}
{
  "name": "SampleProject",
  "version": "1.0.0",
  "description": "Node.js on Docker",
  "author": "First Last <first.last@example.com>",
  "main": "server.js",
  "scripts": {
    "start": "node server.js",
    "dock": "docker run -p 1234:1234 -d <My>/<Info>"
  },
  "dependencies": {
    "core-util-is": "^1.0.2",
    "express": "^4.17.1"
  }
}
npm run dock
server.js

'use strict';

const express = require('express');

// Constants
const PORT = 1234;
const HOST = '0.0.0.0';

// App
const app = express();
app.get('/', (req, res) => {
  res.send('Hello World');
});

app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);
跑步:

internal/modules/cjs/loader.js:969

throw err;

^


Error: Cannot find module '/usr/src/app/server.js'

at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)

at Function.Module._load (internal/modules/cjs/loader.js:842:27)

at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)

at internal/main/run_main_module.js:17:47 {

code: 'MODULE_NOT_FOUND',

requireStack: []

}
{
  "name": "SampleProject",
  "version": "1.0.0",
  "description": "Node.js on Docker",
  "author": "First Last <first.last@example.com>",
  "main": "server.js",
  "scripts": {
    "start": "node server.js",
    "dock": "docker run -p 1234:1234 -d <My>/<Info>"
  },
  "dependencies": {
    "core-util-is": "^1.0.2",
    "express": "^4.17.1"
  }
}
npm run dock
注意:

internal/modules/cjs/loader.js:969

throw err;

^


Error: Cannot find module '/usr/src/app/server.js'

at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)

at Function.Module._load (internal/modules/cjs/loader.js:842:27)

at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)

at internal/main/run_main_module.js:17:47 {

code: 'MODULE_NOT_FOUND',

requireStack: []

}
{
  "name": "SampleProject",
  "version": "1.0.0",
  "description": "Node.js on Docker",
  "author": "First Last <first.last@example.com>",
  "main": "server.js",
  "scripts": {
    "start": "node server.js",
    "dock": "docker run -p 1234:1234 -d <My>/<Info>"
  },
  "dependencies": {
    "core-util-is": "^1.0.2",
    "express": "^4.17.1"
  }
}
npm run dock
我还通过运行以下程序清理了项目:

rm -rf node_modules package-lock.json && npm install && npm start

已解决:

internal/modules/cjs/loader.js:969

throw err;

^


Error: Cannot find module '/usr/src/app/server.js'

at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)

at Function.Module._load (internal/modules/cjs/loader.js:842:27)

at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)

at internal/main/run_main_module.js:17:47 {

code: 'MODULE_NOT_FOUND',

requireStack: []

}
{
  "name": "SampleProject",
  "version": "1.0.0",
  "description": "Node.js on Docker",
  "author": "First Last <first.last@example.com>",
  "main": "server.js",
  "scripts": {
    "start": "node server.js",
    "dock": "docker run -p 1234:1234 -d <My>/<Info>"
  },
  "dependencies": {
    "core-util-is": "^1.0.2",
    "express": "^4.17.1"
  }
}
npm run dock

Dockerfile

    # I'm using Node.js -> Import it's image
FROM node:12

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./


RUN npm install
# If you are building your code for production
# RUN npm ci --only=production

# Run on port 1234
EXPOSE 1234


CMD [ "node", "server.js" ]
    # I'm using Node.js -> Import it's image
FROM node:12

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./


RUN npm install
# If you are building your code for production
# RUN npm ci --only=production

# * BEGIN SOLUTION *
# Bundle app source    
COPY . .
# *  END SOLUTION  *

# Run on port 1234
EXPOSE 1234


CMD [ "node", "server.js" ]

我认为您缺少以下重要部分,应该在运行npm安装后放置:

要将应用程序的源代码捆绑到docker映像中,请使用复制说明:

# Bundle app source
COPY . .
并强制执行Dockerfile中的每个步骤

docker build --no-cache

我认为您只是在复制包*.json文件……您还需要在Docker内部复制项目文件,如
app.js
。@我更新了dockerfile以包含
copy根据@abestrad的回复。我相信应该覆盖相同的区域。我尝试了这个,似乎没有改变结果,我这次更新了DockerfileTry,使用
--无缓存构建,以强制执行Dockerfile中的每个步骤/指令。我不确定这是否解决了问题。构建和运行后,进程标记为“正在运行”(这是一个好迹象),但当我在浏览器中(从Docker仪表板)打开它时,没有响应。在
npm start
运行中,有一个“Hello World”响应。这是您的Hello World,
res.send('Hello World')为了未来读者的利益,我将在答案中添加--no缓存,