如何使用expressjs重定向特定状态?

时间:2016-08-24 01:22:48

标签: ajax node.js mongodb reactjs

我目前正在做一个博客应用程序,我正在努力寻找一种方法来重定向/发送特定状态,然后采取相应行动。

例如,我有一个使用mongoose在mongodb中保存数据的功能。然后,如果没有错误发生200状态。

newArticle.save(function(err){
   if (err) throw err;
  else {
   res.sendStatus(200);
  }
});

我希望能够“获取”此状态(我正在使用对我的视图和路由的反应以及对我的ajax请求的超级反应),然后执行某些操作,例如,如果我的文章已成功添加,则加载一个页面上的某个组件会有一个h1说:发表文章很棒。

所以这是第一部分。

第二部分是,对于所有404或500个错误,我想表达以重定向我,例如:myblog.com - > myblog.com/something然后用我的react路由器简单地渲染一些基本的404页面,我不知道该怎么做,我正在搜索很多但找不到东西......

而且,由于我缺乏HTTP基础知识,比如服务器和客户端如何相互通信,如果你有任何好的文章/书籍可以推荐我想知道。

1 个答案:

答案 0 :(得分:1)

第一部分。根据您是使用状态还是数据库(如flux或redux),如果没有,您可以让ajax响应从您的服务器获得HTTP状态。使用它,您可以使用setState来设置名为isArticleSaveSucessful之类的状态属性。然后,如果该键为true,则只渲染成功消息组件。

第二部分。为了更好的用户体验,我认为你的意图,网址应该仍然是用户的意图,即blog.com/bad-article-name,但页面应该呈现404.非常类似于上面,当API响应返回,相应的setState,类似于articleNotFound。然后在渲染函数中,对状态执行if检查,如果为真,则渲染错误组件。