Node.js上的Connect"无法获取/"

Nat*_*pos 49 http connect node.js

我正在尝试使用以下方式开始提供一些静态网页connect:

var connect = require("connect");
var nowjs = require("now");
var io = require("socket.io");


var app = connect.createServer(
  connect.static(__dirname + '/public')
);

app.listen(8180);
Run Code Online (Sandbox Code Playgroud)

所以我在文件所在的同一目录index.html下的/public目录中添加了一个简单的app.js文件,但是当我尝试在浏览器上查看该页面时,我从节点获得了这个响应:

不能获取 /

我做错了什么以及如何纠正它?

Ser*_*gan 26

你可能在这里,因为你正在读这Apress PRO AngularJS本书......

作为一个注释说明了这个问题KnarfaLingus:

[开始引用]

连接模块已重组.做:

npm install connect 
Run Code Online (Sandbox Code Playgroud)

并且

npm install serve-static
Run Code Online (Sandbox Code Playgroud)

之后你server.js可以写成:

var connect = require('connect');
var serveStatic = require('serve-static'); 
var app = connect(); 

app.use(serveStatic('../angularjs')); 

app.listen(5000);
Run Code Online (Sandbox Code Playgroud)

[结束语]

虽然我这样做,正如本书所暗示的那样,以这样一种更简洁的方式:

var connect = require('connect');
var serveStatic = require('serve-static');

connect().use(
    serveStatic("../angularjs")
).listen(5000);
Run Code Online (Sandbox Code Playgroud)

  • 这解决了我的问题与专业角书感谢! (4认同)

Stu*_*ows 19

Cannot GET /如果您没有指定要尝试获取的页面,则会看到该消息,换句话说,如果您的URL是类似的http://localhost:8180.确保输入页面名称,例如http://localhost:8180/index.html.


Vad*_*hev 14

这段代码应该有效:

var connect = require("connect");

var app = connect.createServer().use(connect.static(__dirname + '/public'));

app.listen(8180);
Run Code Online (Sandbox Code Playgroud)

另外在不支持的连接2.0 .createServer()方法中.请改用connect().

var connect = require("connect");

var app = connect().use(connect.static(__dirname + '/public'));

app.listen(8180);
Run Code Online (Sandbox Code Playgroud)

  • 啊,非常感谢.所有这些旧的node.js文章让我对弃用的东西感到困惑. (8认同)