Error: Cannot GET /

Error: Cannot GET /

我在 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');
});

在终端中 运行 节点 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 -- 不是渲染视图,只显示消息错误:无法获取/

我做错了什么?

请帮忙。

您似乎创建了两个 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 变量未绑定到您的 http 服务器。您反而绑定了一个名为 router 的未使用实例。但是你已经将你的路由注册到 app 变量。