![](/img/trans.png)
[英]Uncaught SyntaxError: Unexpected token < when adding params to express route
[英]404 when adding params to Express route
我正在嘗試傳遞網址參數
這是我的App.js:
// route setup
const usersRouter = require('./routes/users');
app.use('/api/users', usersRouter);
module.exports = app;
這是我的users.js:
router.get('/:facebookUserId', jsonParser, async (req, res) => {
// get user by facebookUserId
const users = db.collection('users');
const facebookUserId = req.params.facebookUserId;
const query = {
facebookUserId: facebookUserId,
};
const user = await findOne(users, query);
res.json(user);
});
module.exports = router;
我的問題是我一加就得到404
:facebookUserId
到router.get()
看來您正在嘗試獲取查詢字符串,而不是從獲取端點路由獲取參數。
在users.js中 ,從req.query
獲取查詢字符串
// as your path is the same with the endpoint prefix api/users, use '/'
router.get('/', jsonParser, async (req, res) => {
// get user by facebookUserId
const users = db.collection('users');
// get the query string from req.query
const facebookUserId = req.query.facebookUserId;
const query = {
facebookUserId: facebookUserId,
};
const user = await findOne(users, query);
res.json(user);
});
module.exports = router;
如果您想像在原始代碼中那樣使用參數/:facebookUserId
,則需要將端點調用更改為類似http://xxx/api/users/10213594301678639
在您的路由中,您期望參數facebookUserId
是一個路由參數(例如/ api / users / 10213594301678639),但是在上面的示例中,您正在使用查詢參數(/ api / users?facebookUserId = 10213594301678639)調用路由)
執行以下操作以捕獲查詢參數的工作方式:
router.get(':facebookUserId?' ... (req, res) => {
...
const facebookUserId = req.query.facebookUserId;
...
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.