【问题标题】:Herokuapp can't deploy, but works perfectly on localhost:3000Herokuapp 无法部署,但可以在 localhost:3000 上完美运行
【发布时间】:2020-11-08 11:06:54
【问题描述】:

我的第一个聊天应用程序有问题。当我在本地主机上运行时,它运行良好。但是,当我将它部署到 Herokuapp 时,这是一个错误: Error Herokuapp Screen

这是我的脚本:app.js

var express = require('express')
var http = require('http')
var socketio = require('socket.io')

var app = express()
var http = http.createServer(app)
var io = socketio(http)

var path = require('path')
var config = {
    port: process.env.PORT || 3000
}

app.get('/', function(req, res) {
    res.sendFile(path.join(__dirname, "views/index.html"))
})

io.on('connection', function(socket) {
    io.emit('join')
    socket.on('disconnect', function() {
        io.emit('leave')
    })
    socket.on('chat message', function(x) {
        io.emit('post message', x)
    })
})

app.use(express.static(__dirname + "/public"))

http.listen(config.port)

完整文件结构:File structure

顺便说一句,这是我无法理解的错误消息:

...
2020-11-07T03:29:47.092238+00:00 app[web.1]: internal/modules/cjs/loader.js:834
2020-11-07T03:29:47.092284+00:00 app[web.1]: throw err;
2020-11-07T03:29:47.092285+00:00 app[web.1]: ^
2020-11-07T03:29:47.092285+00:00 app[web.1]:
2020-11-07T03:29:47.092286+00:00 app[web.1]: Error: Cannot find module 'express'
...

【问题讨论】:

  • 你提交package.jsonpackage-lock.json了吗?
  • 请分享 package.json 和 procfile
  • 这个错误意味着你没有在你的 package.json start 中使用npm install。你能告诉我们你的 package.json 吗?
  • 你可能已经全局安装了 express

标签: javascript node.js heroku


【解决方案1】:

如果您在终端上运行 heroku 日志,您会收到 mongoose openuri() 错误吗?如果是这样,您必须在 heroku 上的应用程序设置中为您的环境变量(如 PORT 等)设置配置变量。

【讨论】:

    【解决方案2】:

    确保 express 模块包含在您的 package.json 文件中。那应该可以解决它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-06
      • 2021-12-07
      • 2012-07-22
      • 2013-03-31
      • 1970-01-01
      • 2019-05-21
      • 2016-02-01
      • 2021-02-03
      相关资源
      最近更新 更多