vuex和nuxt的新手,所以可能有一个非常简单的解决方法。我有两个中间件,一个使用AXIOS与github进行api调用,另一个使用转换为JSON的medium.com用户的RSS源。
github变异在提交存储时工作正常,中等变异不会提交到商店。
// store / index.js
export const state = () => ({
github: [],
medium: [],
blog: []
})
export const mutations = {
ADD_MEDIUM(state, data) {
data.items.forEach((el) => {
state.medium.push({
'createdOn': el.pubDate,
'title': el.title,
'url': el.link
})
})
},
ADD_GITHUB(state, data) {
if(state.github.length === 0){
data.data.forEach((el) => {
state.github.push({
'createdOn': el.created_at,
'title': el.full_name,
'url': el.html_url
})
})
}
},
}
// middleware / medium.js
import rssParser from 'rss-parser'
let parser = new rssParser()
export default function ({ store, route }) {
parser.parseURL('https://medium.com/feed/@user_name')
.then((resp) => {
store.commit('ADD_MEDIUM', resp)
})
}
// middleware / github.js
import axios from 'axios'
export default function ({ store, route }) {
axios.get('https://api.github.com/users/user_name/repos')
.then((resp) => {
store.commit('ADD_GITHUB', resp)
})
}
答案 0 :(得分:0)
将此留待将来搜索。 rss-parser在被解雇时没有返回,因为它缺少CORS。
import rssParser from 'rss-parser'
const CORS_PROXY = "https://cors-anywhere.herokuapp.com/"
export default function ({ store, route }) {
let parser = new rssParser()
parser.parseURL(CORS_PROXY + 'https://medium.com/feed/@user_name', (err, feed) => {
console.log(feed)
store.commit('ADD_MEDIUM', feed)
})
}