node.js socket.io-跟踪请求的url

node.js socket.io-跟踪请求的url,node.js,url,express,socket.io,Node.js,Url,Express,Socket.io,我正在测试发送请求的URL,但当我尝试时: http://localhost:4000/foo 浏览器显示:无法获取/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 =

我正在测试发送请求的URL,但当我尝试时:

http://localhost:4000/foo
浏览器显示:无法获取/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);
});
我想用“foo”来表示:


Express只处理您告诉它要处理的路径,它返回404s的所有其他路径,其中包含消息,如
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模块。

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