Node.js 错误:无法获取/

Node.js 错误:无法获取/,node.js,express,cloud9-ide,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(

我在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
但在访问url之后——它并没有呈现视图,只是显示消息错误:无法获取/

我做错了什么

请帮忙


您似乎创建了两个express实例,这可能是您的问题所在

尝试更改:

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

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


此时,express
app
变量未绑定到http服务器。您已经绑定了一个名为
router
的未使用实例。但是您已经将路由注册到
app
变量。

index.html文件是否在client/root文件夹中?我假设你不想使用一个视图引擎只是纯HTML?还有,有什么理由让你有var app=express()和var server=http.createServer?是的,我没有使用任何视图引擎。现在,我只想显示普通html,我已经编辑了问题并添加了文件夹结构图像——请检查。检查Varedis的答案,我想指出2个实例的问题,但他已经提到了。从您的代码来看,您的应用程序变量没有在端口上侦听,但服务器正在侦听,两个不同的实例。
var express = require('express');
var app = express();

var server = http.createServer(app);