如何解决如何修复Node JS错误在Heroku上找不到模块'express'?
我有下面的节点js代码,它在本地工作得很好,但是当我将其部署到heroku时,出现错误消息“错误:找不到模块'express' 内部/模块/cjs/loader.js:968抛出错误”
const port = process.env.PORT || 5000;
const express = require('express');
require('dotenv').config();
const app = express();
app.set('view-engine','ejs');
app.use(express.urlencoded({extended:false}));
app.get('/',(req,res) => {
res.render('index.ejs');
});
app.listen(port,()=>{console.log(`Listening on http://localhost:${port}`)});
package.json
{
"name": "mtNodeApp","version": "1.0.0","description": "","main": "index.js","scripts": {
"start": "node index.js","devStart": "nodemon index.js"
},"author": "","license": "ISC","devDependencies": {
"bcrypt": "^5.0.0","body-parser": "^1.19.0","dotenv": "^8.2.0","ejs": "^3.1.3","express": "^4.17.1","mongoose": "^5.10.0","nodemon": "^2.0.4","request": "^2.88.2"
}
}
任何想法,我不确定我缺少什么吗?!
谢谢
解决方法
Express必须位于dependencies
而非devDependecies
上:
{
...
"dependencies" {
"express": "^4.17.1",...
}
"devDependecies": {
...
}
此外,可能大多数都必须位于dependencies
中,以便服务器知道必须安装的内容。基本上,它会忽略模块的安装,因为这些模块是用于开发而非生产的。
编辑:如果您想了解更多信息,可以阅读这个好答案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。