Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Node express:动态创建具有所有属性的全身链接?_Node.js_Express - Fatal编程技术网

Node.js Node express:动态创建具有所有属性的全身链接?

Node.js Node express:动态创建具有所有属性的全身链接?,node.js,express,Node.js,Express,在node express应用程序中,我创建了一个生成公共链接的函数,因为在本例中,我希望在视图中显示登录链接“http://example.net/login/123/tokenishfoobaarchinsignsignisgn" 这在默认端口为80的生产环境中正常工作 虽然我没有在req上找到一个方法,在那里我可以获取端口,以查看端口是否!=80岁 我希望能够知道我是否通过localhost:3001进行访问,以便能够将其添加到link函数中。和/或是否有更好的方式从express获得此类

在node express应用程序中,我创建了一个生成公共链接的函数,因为在本例中,我希望在视图中显示登录链接“http://example.net/login/123/tokenishfoobaarchinsignsignisgn"

这在默认端口为80的生产环境中正常工作

虽然我没有在req上找到一个方法,在那里我可以获取端口,以查看端口是否!=80岁

我希望能够知道我是否通过localhost:3001进行访问,以便能够将其添加到link函数中。和/或是否有更好的方式从express获得此类链接生成器功能


谢谢在
req
对象上没有AFAIK端口(您需要的是其他端口)。通常,您知道您监听的端口是什么,因为您通过对的调用提供了express,尽管在这种情况下可能不提供随机端口

如果需要端口,可以从
listen()
返回的实例中获取:


您是否尝试使用
req.get('host')
来获取端口?@GillesHeinesch这是可行的!它给了我“localhost:3001”,而不是req.hostname中的“localhost”。谢谢。啊,谢谢你提醒我,我实际上是在调用bin/www文件来启动应用程序;所有的金子都在里面!
function link_to(req, path){
  return `${req.protocol}://${req.hostname}/${path}`
}
var express = require('express')
var app = express()
var server = app.listen() # Random port is assigned if not provided as 1st arg.
console.log(server.address().port)