express4.*res.sendFile()的写法用koa2怎么实现?

发布于 2022-09-04 03:03:13 字数 629 浏览 8 评论 0

koa2怎么指定html跳转首页?

在express4.*是这样实现的:

var app = require('express')();
var http = require('http').Server(app);

app.get('/', function(req, res){
    res.sendFile(__dirname+'/index.html');
});
http.listen(5566, function(){
    console.log('listening on *:5566');
});

变成koa2 应该怎么写? 网上的教程都是只有这样:

const Koa = require('koa');
const app = new Koa();

app.use(async (ctx, next) => {
    await next();
ctx.response.type = 'text/html';
ctx.response.body = '<h1>Hello, koa2! to cmy</h1>';
});

app.listen(9000);
console.log('app started at port 9000...');

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

廻憶裏菂餘溫 2022-09-11 03:03:13

读取文件直接fs.readFile,将返回文件赋给ctx.body,不就行了!注意设置ctx.type为html,否则就是下载了!

router.get('/', async(ctx, next) => {
  var htmlFile = await (new Promise(function(resolve, reject){
      fs.readFile('./t.html', (err, data) => {
        if (err){
          reject(err);
        }else{
          resolve(data);
        }
      });
  }))
  ctx.type = 'html';
  ctx.body = htmlFile;
});


//还可以是用ReadStream,更简单
router.get('/',(ctx, next) => {
  ctx.type = 'html';
  ctx.body = fs.createReadStream('./t.html');
});
書生途 2022-09-11 03:03:13

巨坑。
这是不是只能访问index.html这个文件,那html引用的css文件呢

思慕 2022-09-11 03:03:13

可以使用 koa-static 来处理静态文件

const static = require('koa-static')

app.use('/static', static('/source/'))

所有请求 /static 路径,都会被指向 /source 文件夹,注意路径要映射正确

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文