gpt4 book ai didi

javascript - 在 Node MVC 中传递 req.params

转载 作者:行者123 更新时间:2023-11-30 14:30:58 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何在 MVC 上下文中使用 Express 传递 req.params。

我知道如何正确引用 req.params,但是当我将我的 app.js 拆分为模型和 Controller 时,我完全迷失了。

引用代码:

路由.js

app.get('/category/:category', descriptor.getSingleCategory)

模型.js

let getSingleCat = (cb) => {
let queryString = 'SELECT * FROM categories WHERE category_id = $1'
let queryValue = [req.params.category]
db.query(queryString, queryValue, cb)
}

Controller .js

const getSingleCategory = (req, response) => {
console.log(req.params.category);
db.desc.getSingleCat((err, queryRes) => {
if (err) {
//render something went wrong
response.send('something went wrong')
} else {
response.send(queryRes.rows)
}
})
}

我已经检查了所有要求,它们工作正常。有没有一种不使用中间件来传递 req.params 的普通方法?

最佳答案

在模型中使用 req.params 的唯一方法是将其作为参数发送,如下例所示:

模型.js

let getSingleCat = (params, cb) => {
let queryString = 'SELECT * FROM categories WHERE category_id = $1'
let queryValue = params.category
db.query(queryString, queryValue, cb)
}

Controller .js

const getSingleCategory = (req, response) => {
console.log(req.params.category);
db.desc.getSingleCat(req.params, (err, queryRes) => {
if (err) {
//render something went wrong
response.send('something went wrong')
} else {
response.send(queryRes.rows)
}
})
}

你不能使用全局变量,所以这是唯一的方法。此外,此变量 (req) 只能在绑定(bind)到将接收实际请求的端点的函数中访问。

关于javascript - 在 Node MVC 中传递 req.params,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51171945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com