无法让 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 的示例

使用 node.js 和 express 简单地获取请求

node.js,错误:找不到模块'express'

我无法在 Node.js 中获取正文格式的请求

CRUD op Express.js Node.js Mysql 无法使用 MVC 插入

简单的游戏循环 Socket.io + Node.js + Express