我在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 ,仅显示消息错误:无法获取/
我做错了什么?
请帮忙。
最佳答案
您似乎创建了两个 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/