我正试图在Koyeb上部署一个简单的服务Node js应用程序,但我遇到了这样的错误:
node:internal/modules/cjs/loader:936
throw err;
^
Error: Cannot find module './controllers/etc...'
Require stack:
- /workspace/server.js
看起来koyeb找不到server.js文件的路径。。。这是我的package.json文件:
{
"name": "my app",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"start": "node server.js",
"dev": "nodemon server.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"nodemon": "^2.0.20"
},
"dependencies": {
"cors": "^2.8.5",
"dotenv": "^16.0.3",
"express": "^4.18.2",
"mongoose": "^6.6.5"
},
"engines": {
"node": "16.x"
}
}
当我运行npm-start或node-server.js时,它在我的本地机器上运行良好,文件在根目录下,我也尝试使用脚本";"开始":"节点/server.js";但同样的问题,我整天都在挠头,但我不知道自己做错了什么。。。我该如何修复?感谢
好的,我后来发现问题不是来自server.js路径,而是来自控制器。。。我在文件上的一个字母上有一个错误,我在windows上的本地机器中找不到错误,因为在windows中是不区分大小写的匹配。。。然而,在Koyeb和Linux上,我猜是区分大小写的匹配!这解释了为什么我在部署应用程序时出现这个错误,因为敏感的大小写与文件不匹配,所以它找不到模块。