我是新手使用
Cloud9 IDE(c9),到目前为止看起来很棒,除了一些小事.
我从文档中看到,要启动一个简单的node.js http服务器,你必须传入process.env.PORT来代替常规端口,例如“8080”.
节点Hello World example:
var http = require('http'); http.createServer(function (req,res) { res.writeHead(200,{'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(process.env.PORT,process.env.IP);
我想知道的是,在c9上,你只能使用javascript / node.js在端口上启动服务吗?或者其他语言也可以正常工作,也许还有其他一些传递端口的方法?特别是python Twisted?
我上传了一些在本地为我工作的扭曲代码,但不能在c9上工作,因为它试图访问本地端口(已经在使用中).这是错误
twisted.internet.error.CannotListenError: Couldn't listen on any:8080: [Errno 98] Address already in use.
如果可能的话,如何在c9上运行以下示例?
Python Twisted Hello World example
from twisted.web import server,resource from twisted.internet import reactor class Simple(resource.Resource): isLeaf = True def render_GET(self,request): return "<html>Hello,world!</html>" site = server.Site(Simple()) reactor.listenTCP(8080,site) reactor.run()
通过documentation和github issues的初始搜索没有太多变化.我希望这是可能的,我错过了正确的参数传递.
编辑:更新下面的输出
节点代码
console.log(process.env.PORT) console.log(process.env.IP)
终端输出
Running Node Process Tip: you can access long running processes,like a server,at 'http://private-cloud.mrchampe.c9.io'. Important: in your scripts,use 'process.env.PORT' as port and 'process.env.IP' as host. 8080 127.6.70.129
Python代码
import os print os.environ["PORT"] print os.environ["IP"]
终端输出
Running Python Process 8080 127.6.70.129
扭曲的代码
import os import twisted from twisted.web import server,world!</html>" site = server.Site(Simple()) reactor.listenTCP(int(os.environ["PORT"]),interface=os.environ["IP"]) reactor.run()
终端输出
Running Python Process hello world Traceback (most recent call last): File "python/hello.py",line 17,in <module> reactor.listenTCP(int(os.environ["PORT"]),interface=os.environ["IP"]) TypeError: listenTCP() takes at least 3 non-keyword arguments (2 given)
listenTCP TypeError很奇怪,因为2个参数在本地工作但在Cloud9上不工作.我不明白为什么使用这些参数不起作用.
解决方法
来自Node.js
sound like os.environ [“PORT”]的process.env.PORT和process.env.IP以及Python中的os.environ [“IP”].也许你可以试试:
reactor.listenTCP(int(os.environ["PORT"]),site,interface=os.environ["IP"])