Node.js-网址参数必须为字符串,且未定义

时间:2018-06-20 18:30:30

标签: node.js express

每次我导航到相对路径时,都会出现以下错误:

TypeError: Parameter "url" must be a string, not undefined
at Url.parse (url.js:103:11)

我的get方法如下:

app.get('/v1/locations', (req, res) => {
const fixieUrl = url.parse(process.env.FIXIE_URL);
const requestedUrl= url.parse('api.clashofclans.com' + req.path);

const options = {
    host: fixieUrl.hostname,
    port: fixieUrl.port,
    path: requestedUrl.href,
    method: 'GET',
    headers: {
        'Content-Type': 'application/json',
        Authorization: 'Bearer **token**',
        'Proxy-Authorization': `Basic ${new Buffer(fixieUrl.auth).toString('base64')}`
    }
};

我一定要在.env文件中添加FIXIE_URL,所以它是什么?

2 个答案:

答案 0 :(得分:2)

尝试用req.url代替process.env.FIXIE_URL

更新

最好将它们分开。

.env文件集中,并在url.js中使用它们:

FIXIE_URL_HOST=someUrl
FIXIE_URL_PORT=80

答案 1 :(得分:0)

根据您的评论,因为process.env.FIXIE_URL未定义。这意味着未设置env变量。因此,要解决此问题,您可以在启动ur node应用时执行此操作

export FIXIE_URL='yourUrl' npm start // or however you start ur node app

或将此yourUrl添加到一个常量文件中,然后从该文件中加载它。

或将export FIXIE_URL='yourUrl'保存在您的操作系统配置文件中