今天遇到了一个问题就是项目中的get请求成功了,response返回的是index.html,后来发现是这里的问题

今天遇到了一个问题就是项目中的get请求成功了,response返回的是index.html,后来发现是这里的问题,不明白为啥这样写

问题描述

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

app.get('*', (req, res) => {
    fs.readFile(path.join(compiler.outputPath, 'index.html'), (err, file) => {
      if (err) {
        res.sendStatus(404);
      } else {
        res.send(file.toString());
      }
    });
  });

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 4k
2 个回答

应该是单页面网页的写法吧,当路由模式是history的时候

有两种后台接口,
一种是page router,返回的是html文件,比如 segmentfault.com/ segmentfault.com/q/1010000018422123
访问接口看到的是页面
一种是ajax router,返回的是数据,比如 api.github.com/user/repos?page=3&per_page=100。

'*'这个符号是所有的意思……
你贴出来的这段代码,意思是,所有的get请求,都返回index.html文件。
这是配合做单页面应用的。
这里页面和接口应该是两套系统,所以可以这样。你要加新的ajax接口,去另一个项目加。
如果只有一个项目,那这个地方不能用'*',只有所有的page router才返回index.html文件,ajax router需要返回数据。(其实也有可能前面已经有代码做了过滤,运行到这一句时,路径肯定是page router。但是目测可能性不大~~)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题