javascript - 如何在带有koa的 react 路由器中使用浏览器历史记录

标签 javascript node.js reactjs react-router koa

在express中,我们可以只用下面的代码来处理请求。当请求未被路由器处理时,服务器端将发送 index.html。

app.get('*', function (request, response){
  response.sendFile(path.resolve(__dirname, '../public', 'index.html'))
})

但是在koa中,下面的代码是行不通的。当请求没有被 koa-router 处理时,它将返回 404 而不是 index.html。

var send = require('koa-send')
var serve = require('koa-static')
var router = require('koa-router')
var koa = require('koa')
var app = koa();

app.use(serve(__dirname+'/../public'));
app.use(function *(){
   yield send(this, path.join(__dirname, '/../public/','index.html' )); })
app.use(router.routes())

下面的代码也不行

router
  .get('*', function* () {
    yield send(this, __dirname +'/../public/index.html')
  })

最佳答案

router.get('*', async function(ctx, next) {
  var html = fs.readFileSync(path.resolve('./build/index.html'));
  ctx.type = 'html';
  ctx.body = html;
})

这对我有用

关于javascript - 如何在带有koa的 react 路由器中使用浏览器历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38850981/

相关文章:

javascript - Angularjs ng-repeat 过滤器适用于 v1.0.1 而不是 v1.3.7

node.js - -bash : pm2: command not found

reactjs - 动态添加一个prop到Reactjs Material ui Select

reactjs - React Router 4 - 如果进入了损坏的链接,则路由到默认组件

javascript - 了解 React-Redux 工具包语法?

javascript - JavaScript 中的意外结果

javascript - 添加淡入淡出到这个 jQuery 翻转

javascript - TypeScript 模板文字打破了通用约束

javascript - 捕获 waitForSelector 错误

node.js - AngularJS 教程步骤_02 的问题