繁体   English   中英

节点应用程序可以在localhost上运行,但不能在Heroku上运行吗?

[英]Node app working on localhost but not on Heroku?

当我在本地主机上执行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

您在根文件夹中需要app.yaml文件。

env: flex
runtime: nodejs
api_version: '1.0'

我认为问题是由于区分大小写和文件命名。 Mac OS X不区分大小写(但可以识别),而Heroku基于Linux,并且区分大小写。

您可以尝试将User.js重命名为user.js

通过从终端运行heroku run bash ,然后是ls ./models/ ,您可以看到/models文件夹在Heroku的文件系统上的显示方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM