如何解决即使我在url
我有这个端点
app.get('/getSongsByRadio/:from/:to/:radioid',(res,req) => {
(async() => {
try {
let sql = `SELECT playback.songid,song.name AS songName,author.name AS authorName,radio.name AS radioName,playback.playbackdatetime
FROM playback
INNER JOIN song ON playback.songid = song.id
INNER JOIN author ON song.authorid = author.id
INNER JOIN radio ON playback.radioid = radio.id
WHERE playbackdatetime BETWEEN $1 AND $2 AND radio.id = $3;`
let values = [req.params.from,req.params.to,req.params.radioid]
const result = await (conn.query(sql,values))
console.log(result.rows)
res.send(result.rows)
} catch (err) {
console.error(err)
throw(err)
}
})()
}) 我正在尝试像这样访问此端点
http://localhost:3000/getSongsByRadio/1597310460/1597310460/1
但是即使我输入了所有三个参数,我也会在控制台中收到此错误:
TypeError: Cannot read property 'from' of undefined
at /Users/lukasmac/code/radiaNemecko/nemeckoRadia/index.js:65:38
at /Users/lukasmac/code/radiaNemecko/nemeckoRadia/index.js:73:7
at Layer.handle [as handle_request] (/Users/lukasmac/code/radiaNemecko/nemeckoRadia/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/lukasmac/code/radiaNemecko/nemeckoRadia/node_modules/express/lib/router/route.js:137:13)
感谢您的帮助
解决方法
我认为您错误地交换了res,req
。应该是(req,res)
您还应该像这样重写您的方法
app.get('/getSongsByRadio/:from/:to/:radioid',async (req,res) => {
try {
let sql = `SELECT playback.songid,song.name AS songName,author.name AS authorName,radio.name AS radioName,playback.playbackdatetime
FROM playback
INNER JOIN song ON playback.songid = song.id
INNER JOIN author ON song.authorid = author.id
INNER JOIN radio ON playback.radioid = radio.id
WHERE playbackdatetime BETWEEN $1 AND $2 AND radio.id = $3;`
let values = [req.params.from,req.params.to,req.params.radioid]
const result = await (conn.query(sql,values))
console.log(result.rows)
res.send(result.rows)
} catch (err) {
console.error(err)
throw(err)
}
})
,
因此,您编写的代码不正确,您只能像这样对主要功能使用异步。
app.get('/getSongsByRadio/:from/:to/:radioid',async (res,req) => {
try {
let sql = `SELECT playback.songid,values))
console.log(result.rows)
res.send(result.rows)
} catch (err) {
console.error(err)
throw(err)
}
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。