无法让 Node.js Express 代码在 Cloud 9 中说“Hello World”
Posted
技术标签:
【中文标题】无法让 Node.js Express 代码在 Cloud 9 中说“Hello World”【英文标题】:Can't get Node.js Express code to say 'Hello World' in Cloud 9 【发布时间】:2017-01-22 22:07:54 【问题描述】:一直在尝试使用 Cloud 9,并一直在尝试使用来自 Express website 的示例代码来获得“Hello World!”。我尝试收听几个不同的端口/IP,指的是https://docs.c9.io/docs/run-an-application 和Running Hello World using Node js Express in cloud 9IDE。尽管侦听器会运行,但此后它将永远不会关闭或返回任何内容。有谁知道为什么会这样?这是我的代码:
var express = require('express');
var app = express();
app.get('/', function (req, res)
res.send('Hello World!');
);
app.listen(process.env.PORT, process.env.IP, function()
console.log('LISTENING');
);
【问题讨论】:
当您在浏览器中访问 localhost:port 时会看到什么? 'Cannot GET /' 那么它一定是路径参数。测试时是否有用于 Cloud 9 的通用路径参数? “运行”按钮左侧的任务栏上有一个“预览”按钮。只需单击,您应该会看到您需要点击的 url,hello world 也会出现。我刚试过你的代码,它可以工作, @Sikorski 昨晚我尝试了几次都没有运气,但今天早上它实际上终于向我展示了“Hello World!”。现在,我的问题是为什么它不在命令行中显示?它不应该显示吗?它不应该在某个时候关闭连接吗?它只是不想停止倾听。 这很奇怪,但我想我现在明白了。它仅在我预览应用程序时显示获取请求。我在里面扔了一个 console.log() 只是为了看看会发生什么。当我打开应用程序时,console.log() 终于出现了,否则它只会在我这样做之前一直在听。它似乎不想在命令行中关闭,但也许不应该?它应该一直听直到我每次都按 ctrl+C 吗? 【参考方案1】:您应该在编辑器中从下方的 c9 命令运行app.js
。
Cloud9 有自己的默认运行路径。默认之类的东西:
https://helloexpress-abcd.c9.io/
helloexpress
是您定义的项目名称,在您的情况下它是不同的,
abcd 是用户名,其余是默认值
这应该显示 Hello World
【讨论】:
以上是关于无法让 Node.js Express 代码在 Cloud 9 中说“Hello World”的主要内容,如果未能解决你的问题,请参考以下文章
使用 Node.JS、Express 和 EJS 实现 browserify 的示例