我使用nextjs API/路由,我有一个登录,当一个问题发生时,返回一个401和消息文本,我想显示给用户。
一个最小的例子是:
export default async (req, res) => {
const { name, password } = req.body;
const url = process.env.SH_API_BASEURL + 'auth/signin';
console.log(url);
try {
const resp = await axios.patch(url, { name, password });
return res.status(200).send(resp.data);
} catch (err) {
const { response } = err;
const status = response.status;
const message = response.data.errors[0].message;
console.log(`status: ${status}, message ${message}`);
return res.status(status).send(message);
}
};
const handleFormSubmit = async (formData, e) => {
e.preventDefault();
try {
const res = await axios.post('/api/v1/auth/signin', formData);
router.push('/secure/home');
} catch (err) {
console.log('pages auth in error');
console.log(err);
setSubmitError(true);
console.log('sigin handle submit error');
}
};
Error: Request failed with status code 401
at createError (createError.js:16)
at settle (settle.js:17)
at XMLHttpRequest.handleLoad (xhr.js:62)
谢谢
您可以访问axios错误的response属性以获取状态
const handleFormSubmit = async (formData, e) => {
e.preventDefault();
try {
const res = await axios.post('/api/v1/auth/signin', formData);
router.push('/secure/home');
} catch (err) {
console.log(err.response.status);
}
};
问题内容: 我必须根据浏览历史实现一些业务逻辑。 我想做的是这样的: URL更新后,有什么方法可以接收来自react-router的回调吗? 问题答案: 尝试检测路线变化时,可以使用功能。考虑到您正在使用,请用HOC 包装您的组件以访问道具。 返回一个函数。您将使用它来收听。 您可以像这样配置路线 index.js 然后在 AppContainer.js中 从历史文档: 您可以使用收听当前位置的更
英文原文:http://emberjs.com/guides/testing/testing-routes/ 单元测试方案和计算属性与之前单元测试基础中说明的相同,因为Ember.Route集成自Ember.Object。 路由测试可以通过集成测试或者单元测试来进行。集成测试对路由的测试具有更好地覆盖性,因为路由通常用来执行过渡和数据加载,这些测试在完整上下文中更加容易测试,而独立上下文则没有那么
我正在查找在我的中检测路由更改。 此后,我将检查全局用户令牌,看看他是否已登录。然后我可以重定向用户,如果他没有登录。
问题内容: 我正在使用React Router。我想检测我来自何处的上一页(在同一应用程序内)。我在上下文中拥有路由器。但是,我在路由器对象上看不到“上一条路径”或历史记录之类的任何属性。我该怎么做? 问题答案: 您可以在生命周期方法中保存先前的路径。该逻辑非常接近文档的疑难解答部分中提供的示例。 最近,可以从州访问它。
为了定义辅助路由,我们必须首先添加一个命名的路由出口,其中要呈现辅助路由的内容。 接下来,我们必须定义到应用程序的辅助路由的链接,以导航和呈现内容。 每个辅助路由是独立的路由,可以拥有: 自己的辅助路由 自己的浏览器历史记录栈
将路由链接到参数 显示特定产品详细信息的组件的路由需要该产品ID的路由参数。我们可以使用以下实现: 注意:product-details路由的路径中的 ,它将参数放在路径中。例如,要查看ID为5的产品的产品详细信息页面,必须使用以下URL:localhost:3000/product-details/5 注意,指令传递一个数组,该数组指定路径和路由参数。或者,我们可以使用JS跳转: Product