我是Node.js,Socket.IO和Nodejitsu的新手。我也在机器上运行Ubuntu。在Googling免费提升了对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 [email protected] No repository field.
WARN package.json [email protected] 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: <[email protected]>
help:
help:      Copy and paste this output to a gist (http://gist.github.com/)
info:    Nodejitsu not ok

最佳答案

首先,我不明白这两个警告的含义是什么?我应该在那里创建package.json文件吗?


是。必须使用package.json文件才能部署nodejitsu。它描述了您的应用程序运行所需的环境。


  我还尝试在提示符后输入以下命令在脚本中启动脚本:scripts.start:


scripts.start不能是javascript代码,它必须是一个简单的shell命令。获取该javascript代码并将其保存在名为server.js的文件中,然后将您的scripts.start命令设置为node server.js

这是Nodejitsu的package.json file交互式指南。当然,official npm docs on package.json是必读的。如果要引用here is an open-source app I wrote,它会部署在nodejitsu上。基本的scripts.start属性将需要遵循以下原则:

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


更新资料

因此,您可能在这里一次尝试了太多事情,而没有在基础上花费足够的时间来避免麻烦。不要跳过任何这些步骤。您将在该过程中学习和理解,并且能够自己理解将来的错误。


首先,使用node server.js之类的手动命令使您的应用在本地运行。
第二,命令npm start通过正确设置package.json在本地工作。
第三,然后致力于使其在nodejitsu上运行。

关于node.js - 关于将Node.js和Socket.IO应用程序部署到Nodejitsu的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16820044/

10-11 12:41