node.js请求库的相对uri

Ale*_*lls 8 javascript node.js express

我有以下代码,node.js无法解析url:

const request = require('request')
const teamURL = `/users/${user._id}/teams`;

const req = request({
    url: teamURL,
    json: true
 }, 
 function(error, response, body) {

    if (!error && response.statusCode == '200') {

        res.render('userHome.html', {
            user: user,
            teams: body
        });
    } 
    else {
        console.error(error);
        next(error);
    }
});
Run Code Online (Sandbox Code Playgroud)

有一个很好的方法在服务器端node.js Express应用程序上使用相对路径/ URL与请求库?

Jas*_*erg 5

仅仅从上下文中清楚地知道url的根部应该是什么,仅提供相对URL.例如,如果您正在stackoverflow.com查找链接/questions,则从上下文中可以清楚地看到完整的URL应该是stackoverflow.com/questions.

请求库没有这种可用的上下文信息,因此需要您提供的完整URL才能发出请求.您当然可以自己构建完整的URL,例如使用url.resolve():

var url = require('url');
var fullUrl = url.resolve('http://somesite.com', '/users/15/teams');
console.log(fullUrl); //=> 'http://somesite.com/users/15/teams');
Run Code Online (Sandbox Code Playgroud)

但是当然这仍然需要你知道网址的根部分.