Javascript Request.query未定义

Javascript Request.query未定义,javascript,node.js,http,Javascript,Node.js,Http,我正在尝试从以下url获取ean: NodeJS服务器处理请求的方式如下: const http = require('http') const port = 3000 const requestHandler = async (request, response) => { let bar_code = request.query.ean bar_code = "7038010034985" let product = await Promise.race(

我正在尝试从以下url获取ean:

NodeJS服务器处理请求的方式如下:

const http = require('http')
const port = 3000

const requestHandler = async (request, response) => {

    let bar_code = request.query.ean
    bar_code = "7038010034985"

    let product = await Promise.race([
        get_info_meny_joker(bar_code, "meny.no"),
        get_info_meny_joker(bar_code, "joker.no"),
        get_info_openfoodfacts(bar_code)
    ])

    // WRITE TO DATABASE
    // database.ref('test/' + bar_code).set(product);

    response.setHeader('Content-Type', 'application/json');

    response.end(JSON.stringify(product))
}

const server = http.createServer(requestHandler)

server.listen(port, (err) => {
  if (err) {
    return console.log('Error occurred', err)
  }

  console.log(`Server is listening on ${port}`)
})
当应用程序达到“let bar_code=request.query.ean”时,应用程序就会崩溃(request.query.ean未定义)。我在谷歌上搜索了一下,我只是看不出我所做的与我找到的例子有什么不同。在我之前发送请求时,它工作得很好。有什么想法吗

下面是完整的错误消息(由于要在此处发布的代码被大量剪切,所以行和字符位置可能已关闭)

0 | index | TypeError:无法读取未定义的属性“ean”
0 | index |位于Server.requestHandler(/home/ubuntu/kalori_app/Server/index.js:32:34)
0 |索引|在emitTwo(events.js:126:13)
Server.emit上的0 | index |(events.js:214:7)
服务器上的0 |索引|。(/usr/local/lib/node_modules/pm2/node_modules/@pm2/io/build/main/metrics/httpMetrics.js:166:33)
parserOnIncoming上的0 |索引|(_http_server.js:619:12)
0 | index |位于HTTPParser.parserOnHeadersComplete(_http_common.js:115:23)

您可以使用Node.js
url
API,它将为您解析所有内容:

consthttp=require('http'),
url=require('url');//导入库
常数端口=3000
const requestHandler=async(请求、响应)=>{
让bar_code=url.parse(request.url,true).query.ean;//然后使用它
让产品=等待承诺([
获取信息(条形码,“meny.no”),
获取joker的信息(条形码,“joker.no”),
获取\u信息\u openfoodfacts(条形码)
])
//写入数据库
//database.ref('test/'+条形码).set(产品);
setHeader('Content-Type','application/json');
response.end(JSON.stringify(产品))
}
const server=http.createServer(requestHandler)
服务器侦听(端口,(错误)=>{
如果(错误){
返回console.log('发生错误',err)
}
log(`Server正在侦听${port}`)
})
阅读有关
url
API的更多信息:


请参阅本文档“获取ean”什么是“ean”@Geuis只是URL中参数的随机名称。它指的是条形码,通常出现在商店的产品上。
http
中的
request
不会有解析的查询对象(如express(或其他中间件)生成和提供)。你必须这样做或使用middleware@PatrickEvans嗯,我想我之前用过Express。哦,那么,我想我会添加另一个库来解析url。
0|index    | TypeError: Cannot read property 'ean' of undefined
0|index    |     at Server.requestHandler (/home/ubuntu/kalori_app/server/index.js:32:34)
0|index    |     at emitTwo (events.js:126:13)
0|index    |     at Server.emit (events.js:214:7)
0|index    |     at Server.<anonymous> (/usr/local/lib/node_modules/pm2/node_modules/@pm2/io/build/main/metrics/httpMetrics.js:166:33)
0|index    |     at parserOnIncoming (_http_server.js:619:12)
0|index    |     at HTTPParser.parserOnHeadersComplete (_http_common.js:115:23)