单击链接时,url id重复

时间:2018-03-13 08:21:56

标签: javascript express routes pug

我正在快递中创建一个小应用程序。这是一个问答应用程序。我遇到的问题是在查询字符串中。下面的查询字符串用于"问题"

http://localhost:3000/cards/3/?side=question

enter image description here

现在当我点击答案时,我得到以下查询字符串。

http://localhost:3000/cards/3/3?side=answer

提出以下404。 enter image description here

以下是card.pug文件的代码。其底部有锚标记。

extends layout.pug

block content
section#content
h2= text
if hint
  p
    i Hint: #{hint}
a(href=`${id}?side=${sideToShow}`)= sideToShowDisplay

下面我有路由文件的代码,看起来好像。所以我不确定它是否与pug文件中的链接有关?

const express = require('express');
const router = express.Router();
const { data } = require('../data/flashcardData.json');
const { cards } = data;

router.get('/:id', (req, res) => {
const { side } = req.query;
const { id } = req.params;
const text = cards[id][side];
const { hint } = cards[id];

const templateData = { id, text };

if (side === 'question') {
templateData.hint = hint;
templateData.sideToShow = 'answer';
templateData.sideToShowDisplay = 'Answer';
} else if (side === 'answer') {
templateData.sideToShow = 'question';
templateData.sideToShowDisplay = 'Question';
}

res.render('card', templateData);
});

module.exports = router; 关于我可能出错的地方的任何想法。我一直绞尽脑汁想出这个问题并且似乎无法弄清楚它为什么不起作用。

1 个答案:

答案 0 :(得分:0)

错误在card.pug文件中。应该是。

a(href=`/cards/${id}?side=${sideToShow}`)= sideToShowDisplay

而不是。

a(href=`${id}?side=${sideToShow}`)= sideToShowDisplay

虽然,我很困惑为什么它重复了id?