关于将Node.js和Socket.IO应用程序部署到Nodejitsu的问题

我是Node.js,Socket.IO和Nodejitsu的新手。 我也在我的机器上运行Ubuntu。 在谷歌免费提升支持Node.js和Socket.IO后,我find了Nodejitsu托pipe平台。 他们说很容易部署一个应用程序,但我觉得有点复杂。 这是我所遵循的过程。

使用Nodejitsu设置我的帐户后,我跑了:

sudo npm install jitsu -g sudo jitsu install socket.io 

我尝试使用以下方式部署应用程序:

 jitsu deploy 

但是我在cmd上得到了两个警告:

 warn: There is no package.json file in /home/ben warn: Creating package.json at /home/ben/package.json 

而柔术则是:

 prompt: Application name: (ben) prompt: Subdomain name: (cand-ben) prompt: scripts.start: 

首先,我不明白这两个警告是什么意思? 我应该在那里创build一个package.json文件吗? 我也尝试在提示符之后的命令行中像这样启动一个脚本:scripts.start:

 var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('hello, i know nodejitsu\n'); }).listen(8080); 

但我得到这个错误信息

 prompt: scripts.start: var http = require('http'); error: Invalid input for scripts.start error: Start script was not found in /home/ben prompt: scripts.start: http.createServer(function (req, res) { error: Invalid input for scripts.start error: Start script was not found in /home/ben prompt: scripts.start: res.writeHead(200, {'Content-Type': 'text/plain'}); error: Invalid input for scripts.start error: Start script was not found in /home/ben prompt: scripts.start: res.end('hello, i know nodejitsu\n'); error: Invalid input for scripts.start error: Start script was not found in /home/ben prompt: scripts.start: }).listen(8080); 

你可以让我知道我应该如何将脚本传递到命令提示符? 我应该如何创buildpackage.json? 有没有一个清楚的教程来说明这些事情?

谢谢

错误从Peter站点添加package.json之后。

 warn: About to write /home/ben/package.json data: data: { data: engines: { node: '0.8.x' }, data: name: 'ben', data: scripts: { start: '' }, data: subdomain: 'candente-ben', data: version: '0.0.0' data: } data: prompt: Is this ok?: (yes) info: Analyzing application dependencies in WARN package.json ben@0.0.0 No repository field. WARN package.json ben@0.0.0 No readme data. info: Checking app availability ben info: Checking app availability ben info: Creating app ben info: Creating app ben error: Error creating ben error: Nodejitsu Error (500): Internal Server Error error: Error running command deploy error: Nodejitsu Error (500): Internal Server Error warn: Error returned from Nodejitsu error: Error: App name / subdomain combination is not available error: at module.exports (/root/nodejitsu/lib/nodejitsu/resources/app/controller/available.js:27:17) error: at Resource._request (/root/nodejitsu/node_modules/resourceful/lib/resourceful/resource.js:184:13) error: at Function.Resource.runAfterHooks (/root/nodejitsu/node_modules/resourceful/lib/resourceful/resource.js:93:12) error: at Resource._request (/root/nodejitsu/node_modules/resourceful/lib/resourceful/resource.js:179:14) error: at Couchdb.view (/root/nodejitsu/node_modules/resourceful/lib/resourceful/engines/couchdb/index.js:143:5) error: at Request._onResponse [as _callback] (/root/nodejitsu/node_modules/resourceful/node_modules/cradle/lib/cradle.js:233:9) error: at Request.init.self.callback (/root/nodejitsu/node_modules/request/main.js:120:22) error: at Request.EventEmitter.emit (events.js:99:17) error: at Request.<anonymous> (/root/nodejitsu/node_modules/request/main.js:555:16) error: at Request.EventEmitter.emit (events.js:96:17) help: For help with this error contact Nodejitsu Support: help: webchat: <http://webchat.nodejitsu.com/> help: irc: <irc://chat.freenode.net/#nodejitsu> help: email: <support@nodejitsu.com> help: help: Copy and paste this output to a gist (http://gist.github.com/) info: Nodejitsu not ok 

首先我不明白这两个警告是什么? 我应该在那里创build一个package.json文件吗?

是。 nodejitsu部署工作需要package.json文件。 它描述了您的应用程序需要运行的环境。

我也尝试在提示符之后的命令行中像这样启动一个脚本:scripts.start:

scripts.start不能是javascript代码,它必须是一个简单的shell命令。 把这个javascript代码保存在一个名为server.js的文件中,然后让你的scripts.start命令为node server.js

这里是Nodejitsu的package.json文件的交互式指南。 当然,package.json上的官方npm文档是必读的。 这里是我写的一个开源的应用程序 ,如果你想引用的话,它是在nodejitsu上部署的。 基本的scripts.start属性需要沿着以下几行:

 "scripts": {"start": "node server.js"} 

更新

所以你可能在这里一次尝试太多的东西,没有花费足够的时间在基本的东西上摆脱麻烦。 不要跳过这些步骤。 你将在这个过程中学习和理解,你将能够自己理解将来的错误。

  • 首先 ,让您的应用程序在本地运行,使用像node server.js这样的手动命令。
  • 其次 ,命令npm start通过让你的package.json正确来npm start在本地工作。
  • 第三 ,然后在nodejitsu上工作。