![](/img/trans.png)
[英]Why fs write file working in localhost but not working in heroku app?
[英]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.