javascript - 如何在react-router Handler进入 View 之前识别NotFound?

标签 javascript reactjs react-router isomorphic-javascript

我正在开发一个小型样板项目,使用 Node 和 Express 通过 ReactJS 进行服务器端渲染。

我想知道如何识别回调中的 Handler 变量何时代表 NotFound 工厂,以便抛出 404 错误与 express 。类似于:res.status(404)

router.run(function(Handler) {

    // HOW TO KNOW `Handler` corresponds to `NotFound`?
    // I WANT TO USE SOMETHING LIKE `res.status(404)` HERE...

    // Render React to a string, passing in our fetched tweets
    var markup = React.renderToString(
        Handler(state)
    );

    // Render our 'home' template
    res.render('index', {
        markup: markup, // Pass rendered react markup
        state: JSON.stringify(state) // Pass current state to client side
    });
});

如果您想完全了解该文件,请随时访问其在 github 上的页面: https://github.com/sergiocruz/react-boilerplate/blob/master/server.js

如果您对此感到好奇,也可以随意浏览整个项目:https://github.com/sergiocruz/react-boilerplate

最佳答案

Handler 参数实际上是 Router 组件。如果将第二个参数添加到回调 state 中,则可以评估路由。

router.run(function(Handler, state) {
    console.log(state.routes);
    ...
}

routes 属性是一个数组,其中包含与请求匹配的每条路由的一个元素,按照它们在路由映射中的嵌套顺序排列。

如果查看路由数组中的元素,您会发现可以计算诸如 pathname(路由名称)、处理程序对象等

关于javascript - 如何在react-router Handler进入 View 之前识别NotFound?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28036600/

相关文章:

javascript - JS-通过base64代码获取图片宽高

javascript - 如何让我的 API 请求获取更新的数据库?

javascript - React 和 HashRouter - 出现空白页

javascript - 动态路径 NavLink React

javascript - 给定错误 : Uncaught TypeError: router. createHref 不是函数,使用 react-bootstrap 导航栏链接到不同页面

javascript - 是否可以将 FullCalendar 日历事件的背景设置为透明?

javascript - 第一个日期是第二个日期的 minDate

javascript - Angular $resource 调用未提供完整数据

javascript - 如何在按钮单击时切换下拉菜单并在外部单击时关闭下拉菜单?

javascript - 带有粘性页眉、页脚、列和可滚动主体(X 和 Y)的 HTML 表格