gpt4 book ai didi

node.js - 我可以在自定义(例如/static/)路径中使用 koa-static 服务 Assets 吗?

转载 作者:IT老高 更新时间:2023-10-28 23:14:16 25 4
gpt4 key购买 nike

https://github.com/koajs/static 上的文档以及我尝试 koa-static 的个人经验使我相信您可以从应用的根 URL 提供文件。

例如:

app.use(serve('./some/dir/'));

鉴于上述对 serve 的使用,访问文件 ./some/dir/something.txt 的 URL 将是 localhost:3000/something。 txt。似乎没有办法配置我的应用程序,以便在 localhost:3000/static/something.txt 上提供相同的文件(以及同一目录中的所有其他文件)。

我是 Node 和 Koa 的新手,所以我刚刚开始深入研究,我可能遗漏了一些非常明显的东西。

我尝试使用 koa-route 来实现:

app.use(route.get('/static/*'), serve(__dirname + '/some/dir'));

但在请求 /static/something.txt 时,我遇到了以下情况:

  TypeError: Cannot read property 'apply' of undefined
at Object.<anonymous> (/Users/me/example/src/node_modules/koa-route/index.js:34:18)
at GeneratorFunctionPrototype.next (native)
at onFulfilled (/Users/me/example/src/node_modules/koa/node_modules/co/index.js:64:19)
at /Users/me/example/src/node_modules/koa/node_modules/co/index.js:53:5
at Object.co (/Users/me/example/src/node_modules/koa/node_modules/co/index.js:49:10)
at Object.toPromise (/Users/me/example/src/node_modules/koa/node_modules/co/index.js:117:63)
at next (/Users/me/example/src/node_modules/koa/node_modules/co/index.js:98:29)
at onFulfilled (/Users/me/example/src/node_modules/koa/node_modules/co/index.js:68:7)
at /Users/me/example/src/node_modules/koa/node_modules/co/index.js:53:5
at Object.co (/Users/me/example/src/node_modules/koa/node_modules/co/index.js:49:10)

最佳答案

要将中间件重新定位到应用程序的另一部分,您可以使用 koa-mount

'use strict';
const koa = require('koa');
const mount = require('koa-mount');

const app = koa();
app.use(function* () { this.body = 'Hello, world'; });
app.use(mount('/foo', function*() { this.body = 'Hello, foo'; }));

app.listen(3000);

curl localhost:3000
> 'Hello, world'
curl localhost:3000/foo
> 'Hello, foo'

koa-router 本身 does not support regex paths or parameter matching .

关于node.js - 我可以在自定义(例如/static/)路径中使用 koa-static 服务 Assets 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31369227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com