当我在本地主机上执行npm run dev(使用nodemon)时,我有一个运行良好的node.js应用程序。但是,当我部署到heroku时,它每次都会崩溃。
我每次都会收到H10错误以及此错误: 错误:找不到模块'../ models / User'
我已经尝试了所有常用的补救措施:我的端口是正确的
const PORT = process.env.PORT || 5000;
我添加了一个Procfile 我删除了所有的node_modules并将它们放入.gitignore
但是我仍然崩溃。
我相信错误所引用的代码行是在我的一条路线中,该行在文件index.js中
const express = require('express');
const router = express.Router();
const { ensureAuthenticated } = require('../config/auth');
const mongoose = require('mongoose');
const User = require('../models/User'); //Line I believe is the issue
我需要该行以便我的应用程序正确执行。有人有建议吗?
编辑文件夹结构:
>config
>models
>User.js
>node_modules
>public
>routes
>index.js
>users.js
>views
>app.js
>package-lock.json
>package.json
>Procfile
答案 0 :(得分:0)
您的根文件夹中需要 app.yaml 文件。
env: flex
runtime: nodejs
api_version: '1.0'
答案 1 :(得分:0)
我认为问题是由于区分大小写和文件命名。 Mac OS X不区分大小写(但知道),而Heroku基于Linux,并且区分大小写。
您可以尝试将User.js
重命名为user.js
。
通过从终端运行heroku run bash
,然后运行ls ./models/
,您可以看到/models
文件夹在Heroku的文件系统上的显示方式。