0

我对 Heroku 非常陌生并且已经部署。

我设法创建了一个应用程序并使用 mongolab 创建了一个 mongoDB。我将 3 个文件(ProcFile、server.js 和 package.json => 参见下面的代码)插入到我的 heroku 应用程序文件夹的根目录

我的应用程序有应用程序错误。这是日志,当我 git push 到 heroku master 时(我想知道为什么它说没有 ProcFile)。

谁能帮我解决这个问题?

日志:

-----> 检测到 Node.js 应用程序

-----> 读取应用程序状态包.json...构建目录...缓存目录...环境变量...

   Node engine:         0.8.x
   Npm engine:          1.2.x
   Start mechanism:     npm start
   node_modules source: package.json
   node_modules cached: true

   NPM_CONFIG_PRODUCTION=true
   NODE_MODULES_CACHE=true

-----> 安装二进制文件正在通过 semver.io 解析节点版本 0.8.x...正在下载和安装节点 0.8.28...正在通过 semver.io 解析 npm 版本 1.2.x...正在下载和安装 npm 1.2。 8000(替换版本 1.2.30)... npm WARN package.json github-url-from-git@1.1.1 没有存储库字段。npm WARN package.json assert-plus@0.1.2 没有存储库字段。npm WARN package.json ctype@0.5.2 没有存储库字段。npm WARN 未满足的依赖项 /tmp/build_eda7353fa1e9a8af28d45ba384d0c26f/.heroku/node/lib/node_modules/npm/node_modules/glob 需要 minimatch@'^0.3.0' 但将加载 npm WARN 未满足的依赖项 /tmp/build_eda7353fa1e9a8af28d45ba384d0c26f/heroku/nodelib/。 /node_modules/npm/node_modules/minimatch,npm WARN 未满足的依赖项,即版本 0.3。

-----> 构建依赖 Npm 版本已更改(2.2.0 => 1.2.8000);使缓存失效 安装节点模块 npm WARN package.json myappName@1.1.0 没有存储库字段。npm WARN package.json myappName@1.1.0 没有 README 数据 npm WARN engine deployd@0.7.0: Wanted: {"node":">= 0.10.0"} (current: {"node":"v0.8.28" "npm":"1.2.8000"})

   > ws@0.4.32 install /tmp/build_eda7353fa1e9a8af28d45ba384d0c26f/node_modules/deployd/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
   > (node-gyp rebuild 2> builderror.log) || (exit 0)

   make: Entering directory `/tmp/build_eda7353fa1e9a8af28d45ba384d0c26f/node_modules/deployd/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/build'
     CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
     SOLINK_MODULE(target) Release/obj.target/bufferutil.node
     SOLINK_MODULE(target) Release/obj.target/bufferutil.node: Finished
     COPY Release/bufferutil.node
     CXX(target) Release/obj.target/validation/src/validation.o
     SOLINK_MODULE(target) Release/obj.target/validation.node
     SOLINK_MODULE(target) Release/obj.target/validation.node: Finished
     COPY Release/validation.node
   make: Leaving directory `/tmp/build_eda7353fa1e9a8af28d45ba384d0c26f/node_modules/deployd/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/build'

   > bson@0.0.6 install /tmp/build_eda7353fa1e9a8af28d45ba384d0c26f/node_modules/deployd/node_modules/mongodb/node_modules/bson
   > node install.js

   ================================================================================
   =                                                                              =
   =  To install with C++ bson parser do <npm install mongodb --mongodb:native>   =
   =                                                                              =
   ================================================================================
   deployd@0.7.0 node_modules/deployd
   ????????? scrubber@0.0.0
   ????????? qs@0.6.6
   ????????? validation@0.0.1
   ????????? commander@2.6.0
   ????????? corser@1.1.2
   ????????? step@0.0.5
   ????????? wrench@1.3.9
   ????????? q@0.8.12
   ????????? underscore@1.7.0
   ????????? async@0.1.22
   ????????? ejs@0.7.2
   ????????? opener@1.3.0
   ????????? semver@1.1.4
   ????????? shelljs@0.0.6-pre2
   ????????? debug@2.1.1 (ms@0.6.2)
   ????????? cookies@0.5.0 (keygrip@1.0.1)
   ????????? mkdirp@0.5.0 (minimist@0.0.8)
   ????????? filed@0.1.0 (mime@1.2.11)
   ????????? send@0.0.2 (fresh@0.1.0, range-parser@0.0.4, mime@1.2.6)
   ????????? fstream@0.1.31 (inherits@2.0.1, graceful-fs@3.0.5, rimraf@2.2.8)
   ????????? doh@0.0.4 (ejs@0.8.8)
   ????????? tar@0.1.20 (block-stream@0.0.7, inherits@2.0.1)
   ????????? fstream-ignore@0.0.10 (inherits@2.0.1, minimatch@0.3.0)
   ????????? http-proxy@0.8.1 (colors@0.6.2, pkginfo@0.2.3, optimist@0.2.8)
   ????????? request@2.51.0 (json-stringify-safe@5.0.0, caseless@0.8.0, forever-agent@0.5.2, aws-sign2@0.5.0,

stringstream@0.0.4, oauth-sign@0.5.0, tunnel-agent@0.4.0, qs@2.3.3, mime-types@1.0.2, node-uuid@1.4.2, combine-stream@0.0。 7、http-signature@0.10.1、tough-cookie@0.12.1、form-data@0.2.0、bl@0.9.4、hawk@1.1.1)????????? socket.io@0.9.17 (base64id@0.1.0, policyfile@0.0.4, redis@0.7.3, socket.io-client@0.9.16) ????????? mongodb@1.0.2 (bson@0.0.6)

-----> 检查启动方法 No Procfile; 将 'web: npm start' 添加到新的 Procfile

-----> 完成构建 创建运行时环境 导出二进制路径 清理 npm 工件 清理以前的缓存 为未来构建缓存结果

-----> 构建成功!

   myappName@1.1.0 /tmp/build_eda7353fa1e9a8af28d45ba384d0c26f
   ????????? deployd@0.7.0

   WARNING: This version of npm (1.2.8000) has several known issues - consider upgrading to the latest release (2.2.0)
   https://devcenter.heroku.com/articles/nodejs-support#specifying-an-npm-version

-----> 发现进程类型 Procfile 声明类型 -> web

-----> Compressing... done, 11.1MB -----> Launching... done, v12 https://[myappName].herokuapp.com/部署到 Heroku

过程文件

web: node server

包.json

{
  "name": "my app",
  "version": "1.1.0",
  "description": "",
  "keywords": [],
  "homepage": "",
  "author": "Me",
  "contributors": [],
  "dependencies": {
    "deployd": ">= 0"
  },
  "scripts": {
    "start": "node server"
  },
  "engines": {
    "node": "0.8.x",
    "npm":  "1.2.x"
  }
}

服务器.js

// require deployd
var deployd = require('deployd');

// configure database etc.
var server = deployd({
  port: process.env.PORT || 5000,
  env: 'production',
  db: {
    host: 'something.mongolab.com',//my real host name
    port: 31601,
    name: 'heroku_appxxxxxx', //my real app name
    credentials: {
      username: process.env.MONGODB_USERNAME,
      password: process.env.MONGODB_PASSWORD
    }
  }
});

// heroku requires these settings for sockets to work
server.sockets.manager.settings.transports = ["xhr-polling"];

// start the server
server.listen();

// debug
server.on('listening', function() {
  console.log("Server is listening on port: " + process.env.PORT);
});

// Deployd requires this
server.on('error', function(err) {
  console.error(err);
  process.nextTick(function() { // Give the server a chance to return an error
    process.exit();
  });
});

非常感谢你的帮助。

这是“heroku log -t”命令返回的内容:

2015-01-22T22:25:16.147815+00:00 app[web.1]: 2015-01-22T22:25:16.878293+00:00 heroku[web.1]: 进程以状态 1 退出 2015-01-22T22 :25:16.890633 + 00:00 heroku [web.1]:状态从开始变为崩溃2015-01-22T23:37:30.079428 + 00:00 heroku [web.1]:状态从崩溃变为启动2015 -01-22T23:37:32.332481+00:00 heroku[web.1]:使用命令n pm start2015-01-22T23:37:34.519186+00:00 app[web.1] 启动进程:2015-01-22T23:37 :34.519203+00:00 app[web.1]: > myappname@1.1.0 开始 /app 2015-01-22T23:37:34.519207+00:00 app[web.1]: 2015-01-22T23:37: 34.519205+00:00 应用程序 [web.1]: > 节点服务器 2015-01-22T23:37:35.071282+00:00 应用程序 [web.1]: 2015-01-22T23:37:35.071937+00:00 应用程序 [ web.1]:错误:ENOENT,readdir 'resources' 2015-01-22T23:37:35.087520+00:00 app[web.1]: npm ERR!myappname@1.1.0 开始:node s erver2015-01-22T23:37:35.087700+00:00 应用 [web.1]:npm 错误!退出状态 1 2015-01-22T23:37:35.087840+00:00 app[web.1]: npm ERR! 2015-01-22T23:37:35.088495+00:00 应用程序 [web.1]:npm 错误!这很可能是 myappname 包的问题,​​2015-01-22T23:37:35.087892+00:00 app[web.1]: npm ERR!在 myappname@1.1.0 启动脚本处失败。2015-01-22T23:37:35.091315+00:00 应用程序 [web.1]:npm 错误!cwd /app 2015-01-22T23:37:35.091657+00:00 app[web.1]: npm ERR!节点-v v0.8.28 2015-01-22T23:37:35.095021+00:00 app[web.1]: npm ERR!代码 ELIFECYCLE 2015-01-22T23:37:35.094749+00:00 app[web.1]: npm ERR!npm -v 1.2.8000 2015-01-22T23:37:35.101035+00:00 应用程序 [web.1]:npm 错误!2015-01-22T23:37:35.101194+00:00 应用程序 [web.1]:npm 错误!可以在以下位置找到其他日志记录详细信息:2015-01-22T23:37:35.101383+00:00 app[web.1]: npm ERR!
/app/npm-debug.log 2015-01-22T23:37:35.101550+00:00 app[web.1]: npm 错误!错误代码 0 2015-01-22T23:37:35.071573+00:00 app[web.1]:加载资源时出错:2015-01-22T23:37:35.089184+00:00 app[web.1]:npm ERR !不是 npm 本身。2015-01-22T23:37:35.081587+00:00 应用程序 [web.1]: 2015-01-22T23:37:35.089921+00:00 应用程序 [web.1]: npm 错误!npm 所有者 ls myappname 2015-01-22T23:37:35.090107+00:00 app[web.1]: npm ERR!上面可能有额外的日志输出。2015-01-22T23:37:35.090358+00:00 应用程序 [web.1]:npm 错误!系统 Linux 3.13.0-40-gen eric 2015-01-22T23:37:35.090869+00:00 app[web.1]: npm ERR!命令“节点”“/app/.hero ku/node/bin/npm”“开始”2015-01-22T23:37:35.089349+00:00 app[web.1]:npm ERR!告诉作者这在您的系统上失败:2015-01-22T23:37:35.089535+00:00 app[web.1]:npm 错误!节点服务器 2015-01-22T23:37:35.089765+00:00 app[web.1]: npm ERR!您可以通过以下方式获取他们的信息:2015-01-22T23:37:35.914172+00:00 heroku[web.1]: Process exited with status 1 2015-01-22T23:37:35.922884+00:00 heroku[web.1 ]:状态从开始变为崩溃 2015-01-23T01:07:57.421508+00:00 heroku[web.1]: 使用命令启动进程n pm start 2015-01-23T01:07:59.976915+00:00 app[web.1]: 2015-01-23T01:07:59.976963+00:00 app[web.1]: > myappname@1.1.0 开始 /app 2015 -01-23T01:07:59.976965+00:00 app[web.1]: > 节点服务器 2015-01-23T01:07:59.976967+00:00 app[web.1]: 2015-01-23T01:08: 00.496965+00:00 app[web.1]:加载资源时出错:2015-01-23T01:08:00.507766+00:00 app[web.1]:2015-01-23T01:08:00.497357+00:00 app [web.1]:错误:ENOENT,readdir 'resources' 2015-01-23T01:08:00.513161+00:00 app[web.1]:npm 错误!myappname@1.1.0 开始:node s erver2015-01-23T01:08:00.513403+00:00 应用 [web.1]:npm 错误!退出状态 1 2015-01-23T01:08:00.514599+00:00 app[web.1]: npm ERR! 这很可能是 myappname 包的问题,​​2015-01-23T01:08:00.513607+00:00 app[web.1]: npm ERR! 2015-01-23T01:08:00.514719+00:00 应用程序 [web.1]:npm 错误!不是 npm 本身。2015-01-23T01:08:00.513749+00:00 应用程序 [web.1]:npm 错误!在 myappname@1.1.0 启动脚本处失败。2015-01-23T01:08:00.514853+00:00 应用程序 [web.1]:npm 错误!告诉作者这在您的系统上失败:2015-01-23T01:08:00.496673+00:00 app[web.1]: 2015-01-23T01:08:00.514977+00:00 app[web.1]: npm 错误!节点服务器 2015-01-23T01:08:00.515141+00:00 app[web.1]: npm ERR!您可以通过以下方式获取他们的信息:2015-01-23T01:08:00.515245+00:00 app[web.1]: npm ERR! npm 所有者 ls myappname 2015-01-23T01:08:00.515382+00:00 app[web.1]: npm 错误!上面可能有额外的日志输出。2015-01-23T01:08:00.515563+00:00 应用程序 [web.1]:npm 错误!系统 Linux 3.13.0-40-gen eric 2015-01-23T01:08:00.515740+00:00 app[web.1]: npm ERR!命令 "node" "/app/.hero ku/node/bin/npm" "start" 2015-01-23T01:08:00.515914+00:00 app[web.1]: npm ERR!cwd /app 2015-01-23T01:08:00.516078+00:00 app[web.1]: npm 错误!节点-v v0.8.28 2015-01-23T01:08:00.516321+00:00 app[web.1]: npm ERR!npm -v 1.2.8000 2015-01-23T01:08:00.516461+00:00 应用程序 [web.1]:npm 错误!代码 ELIFECYCLE 2015-01-23T01:08:00.517740+00:00 app[web.1]: npm ERR!2015-01-23T01:08:00.517993+00:00 应用程序 [web.1]:npm 错误!00 应用 [web.1]:npm 错误!命令 "node" "/app/.hero ku/node/bin/npm" "start" 2015-01-23T01:08:00.515914+00:00 app[web.1]: npm ERR!cwd /app 2015-01-23T01:08:00.516078+00:00 app[web.1]: npm 错误!节点-v v0.8.28 2015-01-23T01:08:00.516321+00:00 app[web.1]: npm ERR!npm -v 1.2.8000 2015-01-23T01:08:00.516461+00:00 应用程序 [web.1]:npm 错误!代码 ELIFECYCLE 2015-01-23T01:08:00.517740+00:00 app[web.1]: npm ERR!2015-01-23T01:08:00.517993+00:00 应用程序 [web.1]:npm 错误!00 应用 [web.1]:npm 错误!命令 "node" "/app/.hero ku/node/bin/npm" "start" 2015-01-23T01:08:00.515914+00:00 app[web.1]: npm ERR!cwd /app 2015-01-23T01:08:00.516078+00:00 app[web.1]: npm 错误!节点-v v0.8.28 2015-01-23T01:08:00.516321+00:00 app[web.1]: npm ERR!npm -v 1.2.8000 2015-01-23T01:08:00.516461+00:00 应用程序 [web.1]:npm 错误!代码 ELIFECYCLE 2015-01-23T01:08:00.517740+00:00 app[web.1]: npm ERR!2015-01-23T01:08:00.517993+00:00 应用程序 [web.1]:npm 错误!npm 错误!代码 ELIFECYCLE 2015-01-23T01:08:00.517740+00:00 app[web.1]: npm ERR!2015-01-23T01:08:00.517993+00:00 应用程序 [web.1]:npm 错误!npm 错误!代码 ELIFECYCLE 2015-01-23T01:08:00.517740+00:00 app[web.1]: npm ERR!2015-01-23T01:08:00.517993+00:00 应用程序 [web.1]:npm 错误!
/app/npm-debug.log 2015-01-23T01:08:00.518222+00:00 app[web.1]: npm 错误!错误代码 0 2015-01-23T01:08:00.517870+00:00 app[web.1]: npm ERR!可以在以下位置找到其他日志记录详细信息:2015-01-23T01:08:01.307216+00:00 heroku[web.1]: Process exited with status 1 2015-01-23T01:08:01.315931+00:00 heroku[web.1] 1]:状态从开始变为崩溃 2015-01-23T04:15:56.955682+00:00 heroku[web.1]:状态从崩溃变为开始 2015-01-23T04:16:00.763097+00:00 heroku[web.1]:使用命令启动进程n pm start2015-01-23T04:16:04.864921+00:00 app[web.1]: 2015-01-23T04:16:04.864940+00:00 app[web.1]: > 节点服务器 2015-01-23T04:16 :04.864942+00:00 app[web.1]: 2015-01-23T04:16:04.864939+00:00 app[web.1]: > myappname@1.1.0 start /app 2015-01-23T04:16: 05.471847+00:00 app[web.1]:2015-01-23T04:16:05.452400+00:00 app[web.1]:加载资源时出错:2015-01-23T04:16:05.476361+00:00 app [web.1]:npm 错误!2015-01-23T04:16:05.476484+00:00 应用程序 [web.1]:npm 错误!在 myappname@1.1.0 启动脚本处失败。2015-01-23T04:16:05.477178+00:00 应用程序 [web.1]:npm 错误!不是 npm 本身。2015-01-23T04:16:05.477054+00:00 应用 [web.1]:npm 错误!这很可能是 myappname 包的问题,​​2015-01-23T04:16:05.477310+00:00 app[web.1]: npm ERR!告诉作者这在您的系统上失败:2015-01-23T04:16:05.452048+00:00 app[web.1]:2015-01-23T04:16:05.452756+00:00 app[web.1]:错误:ENOENT,readdir 'resources' 2015-01-23T04:16:05.475943+00:00 app[web.1]:npm ERR !myappname@1.1.0 开始:node s erver 2015-01-23T04:16:05.476190+00:00 应用 [web.1]:npm 错误!退出状态 1 2015-01-23T04:16:05.477973+00:00 app[web.1]: npm ERR! 系统 Linux 3.13.0-40-gen eric 2015-01-23T04:16:05.477435+00:00 app[web.1]: npm ERR!节点服务器 2015-01-23T04:16:05.477558+00:00 app[web.1]: npm ERR!您可以通过以下方式获取他们的信息:2015-01-23T04:16:05.477681+00:00 app[web.1]: npm ERR! npm 所有者 ls myappname 2015-01-23T04:16:05.477804+00:00 app[web.1]: npm ERR!上面可能有额外的日志输出。2015-01-23T04:16:05.478145+00:00 应用程序 [web.1]:npm 错误!命令“节点”“/app/.hero ku/node/bin/npm”“开始”2015-01-23T04:16:05.478311+00:00 app[web.1]:npm ERR!cwd /app 2015-01-23T04:16:05.478475+00:00 app[web.1]: npm 错误!节点-v v0.8.28 2015-01-23T04:16:05.480171+00:00 app[web.1]: npm ERR!
/app/npm-debug.log 2015-01-23T04:16:05.480292+00:00 app[web.1]: npm 错误!错误代码 0 2015-01-23T04:16:05.480111+00:00 app[web.1]: npm ERR!可以在以下位置找到其他日志记录详细信息:2015-01-23T04:16:05.478856+00:00 app[web.1]: npm ERR! npm -v 1.2.8000 2015-01-23T04:16:05.478967+00:00 应用程序 [web.1]:npm 错误!代码 ELIFECYCLE 2015-01-23T04:16:05.480021+00:00 app[web.1]: npm ERR!2015-01-23T04:16:06.250211+00:00 heroku[web.1]:进程以状态 1 退出 2015-01-23T04:16:06.261424+00:00 heroku[web.1]:状态从开始变为坠毁

4

1 回答 1

0

我解决了我的问题。:)

我需要更新package.json中的节点和 nmp 版本

"engines": { "node": "0.10.x", "npm": "2.2.x" } 而且我还必须在我的 heroku 应用程序文件夹的根目录中创建一个“资源”文件夹。请注意,资源文件夹,因为它是空的,可能会被 git 忽略,所以我在其中添加了一个空文件。

我希望它可以帮助我失去几个小时试图解决这些问题的人。

于 2015-01-24T00:54:54.177 回答