TypeError:无法读取属性' get'未定义-Node.js -URL参数
我正在尝试从我的客户端获取请求(来自用户输入)中获取某些参数,以获取API获取我在服务器上发送的请求。
使用。在我的search_params变量上使用。我正在使用'url'node.js软件包。
不确定为什么它是未定义的,我遵循本指南来解决我要解决的问题 - 1
下面的代码:(我评论了导致错误的两行,因此您更容易看到)
const axios = require('axios');
const router = require('express').Router();
const url = require('url');
require('dotenv').config();
const bamboo_api_key = process.env.BAMBOO_API_KEY;
const config = {
headers: {
'Accept':'application/json'
}
};
router.get('/bamboo/absencees', (req, res) => {
const full_url = req.protocol + '://' + req.get('host') + req.originalUrl;
const search_params = full_url.searchParams;
// const start = search_params.get('start')
// const end = search_params.get('end')
console.log("full url: ", fullUrl);
console.log(end);
console.log(sart);
axios.get('https://'+bamboo_api_key+':[email protected]/api/gateway.php/velocitypartners/v1/time_off/whos_out/'+req.query.params, config)
.then((response) => {
console.log(response)
console.log(req.query.params)
res.send(response.data)
})
.catch(error => {
console.log(error)
});
})
module.exports = router;
I am trying to get certain params from my client-side get request (which come from user input), to feed into an API get a request I send off on my server.
I get this error when using .get on my search_params variable. I am using the 'URL' node.js package.
not sure why it is undefined I followed this guide to work out a solution to what I am trying to solve - 1
Code below: (I commented out the two lines that are causing the error so it is easier for you to see)
const axios = require('axios');
const router = require('express').Router();
const url = require('url');
require('dotenv').config();
const bamboo_api_key = process.env.BAMBOO_API_KEY;
const config = {
headers: {
'Accept':'application/json'
}
};
router.get('/bamboo/absencees', (req, res) => {
const full_url = req.protocol + '://' + req.get('host') + req.originalUrl;
const search_params = full_url.searchParams;
// const start = search_params.get('start')
// const end = search_params.get('end')
console.log("full url: ", fullUrl);
console.log(end);
console.log(sart);
axios.get('https://'+bamboo_api_key+':[email protected]/api/gateway.php/velocitypartners/v1/time_off/whos_out/'+req.query.params, config)
.then((response) => {
console.log(response)
console.log(req.query.params)
res.send(response.data)
})
.catch(error => {
console.log(error)
});
})
module.exports = router;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
从我看到的
full_url
只是一个串联的字符串,显然没有方法/属性searchParams
像对象一样。因此,我们知道
full_url.searchparams
是未定义的。这将评估
哪些导致您的问题。
您使用调试器了吗?看到运行时的
full_url
看起来会很有帮助。尽管如此,这里应该是一个问题。From what I see
full_url
is just a concatenated string which obviously has no method/attributesearchParams
like an object would have.So we know that
full_url.searchParams
is undefined.This would evaluate to
which results in your problem.
Did you use a debugger? It would be helpful to see what
full_url
looks like during run-time. Nonetheless, it being a string should be the problem here.有一件小事,您需要知道并添加。
full_url
是一个没有searchParams的字符串。因此,使其成为URL对象并使用其方法。There is a small thing, you need to know and add.
full_url
is a string that doesn't have searchParams. So, make it a URL object and use their methods.