express.js request.url 总是 /

Posted

技术标签:

【中文标题】express.js request.url 总是 /【英文标题】:express.js request.url is always / 【发布时间】:2016-01-29 15:26:44 【问题描述】:

我刚刚使用 node.js 和 express 创建了我的第一个应用程序。而且我只想打印出当前的网址,所以我添加了这些行:

app.use('/test', function(request, response)
    console.log('current url is '+request.url);
    response.end();
)

现在,当我在 localhost:3000/test 的浏览器上运行时,会打印出我:current url is / 有人可以向我解释一下吗?

【问题讨论】:

我想你可能还有另一个console.log,它打印'current url is /' 【参考方案1】:

我也遇到了同样的问题,解决方法很明显...

我有一个“明确的规则”,例如:

app.all('*', function(req, res) 
    res.redirect('/')
)

这会自动将我重定向到“/”路由,所以它不起作用......

在您的情况下,我认为问题来自您与 express 一起使用的键“使用”。 试试这个:

app.get('/test', function(request, response)
    console.log('current url is '+request.url);
    response.end();
)

【讨论】:

使用 get 而不是 use 为我解决了这个问题。 app.use 实际上是挂载中间件而不是路由请求。【参考方案2】:

试试这个:

var Url = req.protocol + '://' + req.get('host') + req.originalUrl;

Reference in ***: How to get full URL in Express.js

【讨论】:

以上是关于express.js request.url 总是 /的主要内容,如果未能解决你的问题,请参考以下文章

Express.js 对 Angular CORS 错误的响应

在 Express.js 中停止执行 Sequelize 承诺

如何将 webpack 与 express 一起使用?

为啥我的 Auth0 令牌从 iOS 发送到 node.js 服务器时总是返回无效?

Heroku - Socket.IO 客户端总是连接到本地主机

scrapy爬取数据时,为啥总是302