1

我是 Node.js、Socket.IO 和 Nodejitsu 的新手。我也在我的机器上运行 Ubuntu。在谷歌搜索对 Node.js 和 Socket.IO 的免费提升支持后,我找到了 Nodejitsu 托管平台。他们说部署应用程序很容易,但我发现它有点复杂。这是我遵循的过程。

在使用 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:

首先,我不明白这两个警告的目的是什么?我应该在那里创建一个 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);

你能告诉我应该如何将脚本传递到命令提示符中吗?我应该如何创建 package.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
4

1 回答 1

3

首先我不明白这两个警告的目的是什么?我应该在那里创建一个 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
  • 第三,然后努力让它在 nodejitsu 上工作。
于 2013-05-29T17:16:26.343 回答