如何用快递处理动态slu ??

时间:2018-06-18 16:39:45

标签: json express vue.js axios nuxt.js

我正在尝试使用Nuxt中的express和axios处理动态段塞,例如:mydomain.com/foo

如果它们是整数(/ 1,/ 2,/ 3等),我之前使用动态段塞工作但是当我尝试采用相同的逻辑并将其与json对象匹配时,我遇到了麻烦。

预期: 当用户输入类似mysite.com/randomslug的URL时,路由器将检查slug以查找JSON对象中的匹配项。如果找到匹配,那么它将作为结果发送数据,如果未找到匹配,则它将发送404状态。

这是我的代码: 在我的/api/skateparks.js文件中:

// Skateparks
const skateparks = {
  'toronto': {
    'name': 'toronto',
    'address': 'ontario',
    'city': 'ville'
  },
  'aurora': {
    'name': 'aurora',
    'address': 'ontario',
    'city': 'hello'
  },
  'ajax': {
    'name': 'ajax',
    'address': 'ontario',
    'city': 'hell'
  }
}
console.log('hello world')
/* GET skatepark listings. */
router.get('/skateparks', function (req, res, next) {
  res.json(skateparks)
})

/* GET skatepark location  */
router.get('/:id', function (req, res, next) {
  let id = req.params.id
  for (let skatepark in skateparks) {
    if (skatepark === id) {
      res.json(skateparks[id])
    } else {
      res.sendStatus(404)
    }
  }
})

在我的/pages/_id.vue/文件中:

<script>
import axios from '~/plugins/axios'

export default {
  name: 'id',
  asyncData ({ params, error }) {
    return axios.get('/api/skateparks')
      .then((res) => {
        return { skatepark: res.data }
      })
      .then(console.log, console.log)
      .catch((e) => {
        error({ statusCode: 404, message: params })
      })
  },
  head () {
    return {
      title: `User:`
    }
  }
}
</script>

编辑:使用更新的get函数运气好。 仍然没有正常工作,因为它只从一些对象中提取数据而不是全部

0 个答案:

没有答案