我正在尝试添加router.get('/:name',...),它将根据':name'参数从数据库返回一个点。
路由/ points.js
import express from 'express'
import Points from '/path/models/points'
let router = express.Router()
router.get('/:session', (req, res) => {
Points.query({...}).fetchAll().then(point => {
//returns points based on sessionId
})
})
export default router
当我尝试添加另一个'.get'时,我在'session'中使用不同参数时返回的所有内容都是未定义的,因为使用了原始的router.get并且正在寻找'session'。
有没有办法添加另一个带有不同参数的'get'?
答案 0 :(得分:0)
跟进我的评论:
import express from 'express';
import Points from '/path/models/points';
let router = express.Router();
router.get('/sessions/:session', (req, res) => {
Points.query({...}).fetchAll().then(point => {
//returns points based on sessionId
});
});
router.get('/names/:name', (req, res) => {
.. actual code here ..
});
export default router;
现在,如果确实坚持为查询提供单个不可知的入口点,则可以使用单个路由,并使用实际的数据库查询来搜索session_id
和{数据库中的{1}}字段与您的不可知参数匹配。类似的东西:
name
但是我仍然认为在根级别进行参数匹配是一个糟糕的主意。
至于两个路由同时匹配根级别的参数,这是不可能的,因为定义的第一个路由将接收所有传入的请求,而第二个路由将不接收,只是因为没有办法告诉一个来自import express from 'express';
import Points from '/path/models/points';
let router = express.Router();
router.get('/:points', (req, res) => {
Points.query({...}).fetchAll().then(point => {
//returns points based on sessionId OR name
});
});
export default router;
参数的:session
参数。对于节点/表达,它们都是相同的,即它们都匹配在根正斜杠之后的任何。