0

我正在测试给出请求的 URL,但是当我尝试时:

http://localhost:4000/foo

浏览器说:Cannot GET /foo

我的服务器代码:

var express = require('express');
var app = express();
var http = require('http');
var server = http .createServer(app);
var io = require('socket.io').listen(server);
var url = require('url');





server.listen(4000);

app.get('/', function (request, response) {
var pathname = url.parse(request.url).pathname;
 console.log("currentpathname: "+pathname);
});

我想为:

 http://localhost:4000/foo
4

1 回答 1

0

Express 只处理您告诉它处理的路径,它返回 404 的所有其他路径以及类似的消息Cannot GET /foo

app.get('/'仅处理'/'您需要使用的所有路径app.get'*'

作为说明,规范

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1'); 

相当于

express().all('*', function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1'); 

为了了解事情是如何工作的,我建议只玩一下核心 http 模块。

于 2013-03-26T15:43:00.677 回答