【发布时间】:2022-01-01 04:39:38
【问题描述】:
我正在为 Vue/Vuetify 中构建的应用程序进行错误处理。我正在为一个链接到一个 API 的数据表使用外部分页,该 API 在一段时间内只允许如此多的点击。因此,当用户达到该限制时,我试图通过并在前端向用户显示“请求过多”的错误。
我遇到的问题是将该错误从后端服务器传递到前端。当它在前端出错时,它只会给出 500 错误。但是,服务器日志给了我正在发生的实际错误。我怎样才能让它通过?以下是来自服务器和前端的相关 javascript 代码。
注意:我一直在使用 eventbus 来显示整个项目中的错误。但到目前为止,我还没有从后到前传递任何东西。
后端服务器
module.exports = {
async find(ctx) {
var page = ctx.query.page;
var key = '';
var locale = ({ location: '', location_type: '', page: page });
const sdk = require('api')('@');
try {
var response = await sdk.auth(key)['grants_funders'](locale);
}
catch (err) {
console.log(err);
}
;
// .then(res => console.log(res))
// .catch(err => console.error(err));
// console.log(response);
return response
}
};
前端
export default {
name: "Search",
components: {},
props: ["funderDirectories", "serverItemsLength"],
data() {
return {
page: 1,
usericon: usericon,
greentick: greentick,
listicon: listicon,
training: training,
keyword: null,
funderHeaders: [
{ text: "Organization", value: "funder_name" },
{ text: "City", value: "funder_city" },
{ text: "Country", value: "funder_country" },
{ text: "Count", value: "grant_count" },
],
myloadingvariable: false,
pageCount: 1,
itemsPerPage: 25,
};
},
watch: {
page() {
Vue.$funderService.find({ page: this.page }).then((res) => {
this.funderDirectories = res.data.rows;
this.serverItemsLength = res.data.total_hits;
});
},
},
methods: {},
computed: {
filteredFunderDirectories() {
if (!this.keyword) {
return this.funderDirectories;
}
return this.funderDirectories.filter(
(q) =>
q.funder_name.toLowerCase().indexOf(this.keyword.toLowerCase()) !== -1
);
},
},
};
【问题讨论】:
-
请不要发布您的敏感信息,例如 api 密钥
标签: javascript vue.js vuetify.js