为什么我不能通过vue从mysql获取新页面上的数据?

mitkmikd  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(364)

很抱歉问了一个看起来很普通的问题,但我似乎无法做到。
我想点击'a'标签,打开一个新的页面,根据mysql数据库的id显示一篇文章。但我有500块。
谁能告诉我我的密码有什么问题吗?谢谢您。
这是a标签

<article v-for='item in dataGroup'>
      <a :href="'http://localhost:8090/articlePage.html?articlePage?id='+item.ID" :name='pageId' target="__blank">
        <h4>{{item.title}}</h4>
        <p>{{item.intro}}</p>
      </a>
 </article>

我使用vue资源发送“get”请求

const vm = new Vue({
    el: '#app',
    data: {
      dataGroup: [],
    },
    methods: {
      renderArticle(url) {
        this.$http.get(url, {

        }).then((res) => {
          this.dataGroup = res.data;
        }, (res) => {
          alert(res.status)
        })

      },
    },
    created() {
      this.renderArticle('/articlePage')

    }
  })

这是我的服务器代码

module.exports = () => {
var router = express.Router();
router.get('/', (req, res) => {
  db.query(`SELECT * FROM articles_table WHERE ID='${pageId.id}'`, (err, page) => {
    if (err) {
      console.error(err);
      res.status(500).send('database error').end();
    } else {
      res.send(page);
    }
  })
})
7cjasjjr

7cjasjjr1#

尚未为定义服务器端路由 articlePage 你从来没有真正发送过 pageId 因此,您不能在查询中使用它,因为服务器不知道该变量是什么,更不用说如何访问 id 别管了。
你没有一个 catchall (*) 路由定义为返回 404 错误代码,因此服务器(可能)响应 500 服务器错误,因为它不知道如何处理请求。
编辑
你的网址对我来说没有意义,应该是这样的:

https://localhost:8090/articlePage.html?articlePageId='+item.ID

然后在服务器端,您可以访问请求的查询字符串中的任何变量,如下所示:

req.query.articlePageId

这个 req.query 一部分是魔法发生的地方

相关问题