node.js - 错误: Cannot GET/

标签 node.js express cloud9-ide

我在c9.io ide环境中工作,我在server.js文件中编写了以下代码

var http = require('http');
var path = require('path');

var async = require('async');
var socketio = require('socket.io');
var express = require('express');

var express = require('express');
var app = express();

var router = express();
var server = http.createServer(router);

server.listen(process.env.PORT || 3000, process.env.IP || "0.0.0.0", function(){
  var addr = server.address();
  console.log("Server listening at", addr.address + ":" + addr.port);
});

app.use(express.static(__dirname + '/client'));

// respond with "hello world" when a GET request is made to the homepage
app.get('/', function(req, res) {
  res.render('index.html');
});

app.get('/about', function (req, res) {
  res.send('about');
});

在终端中运行 node server.js 后,消息显示为

Your code is running at https://nodejs2-mujaffar.c9.io.
Important: use process.env.PORT as the port and process.env.IP as the host in your scripts!

Server listening at 0.0.0.0:8080

但是访问 https://nodejs2-mujaffar.c9.io/ 后url -- 它不是渲染 View ,仅显示消息错误:无法获取/

我做错了什么?

请帮忙。

Folder structure of app

最佳答案

您似乎创建了两个 Express 实例,这可能是您的问题。

尝试改变:

var express = require('express');
var app = express();

var router = express();
var server = http.createServer(router);

至:

var express = require('express');
var app = express();

var server = http.createServer(app);

目前,您的express app 变量尚未绑定(bind)到您的http 服务器。相反,您已经限制了一个名为 router 的未使用实例。但随后您已将路由注册到 app 变量。

关于node.js - 错误: Cannot GET/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30758379/

相关文章:

javascript - 在这种情况下,javascript 将 undefined 分配给未声明的变量,并且在访问变量时抛出引用错误

node.js - Node Express Connect - session 管理

node.js - CASL能力科目助手有条件

javascript - Nodejs - 抛出不可预知的错误,因为 `property ' get' of undefined`

templates - node.js jade 模板 - 自定义语法和替换?

php - 使用 PHP 将 JavaScript 数组保存到服务器

php - 如何编辑/etc/phps/apache2/php.ini

c#-4.0 - Cloud 9 是否支持 .Net 进行构建、部署或调试?

javascript - Node.js 集群尽可能频繁地处理数据

javascript - 在不同的js文件中为对象添加属性和方法