NODE JS - TypeError:Path必须是字符串。已收到{request

时间:2017-01-03 23:17:25

标签: node.js typescript koa koa2

大家好(和女生)^^

我正在使用koa2,koa-router,koa-static(试试..)而没有koa-send ......但没有任何工作,我需要你的帮助。 :d

所以事实上,我的js文件找不到... 我有this ...

所以我安装了koa-static并做了这个:

app.use(serve(__dirname + '/public'));

但是出现了这样的问题:

koa deprecated Support for generators will been removed in v3. See the documentation for examples of how to convert old middleware //github.com/koajs/koa/tree/v2.x#old-signature-middleware-v1x server.js:18:5

我不记得我曾尝试过但没有任何效果...... 3个小时后我决定改变为koa-send!

所以我安装了新的软件包,我从示例中编写代码......

app.use(async function(ctx){
    await serve(ctx, ctx.path, { root: __dirname + '/public' });
});

现在我得到......

TypeError: Path must be a string. Received { request:

感谢stackoverflow因为声誉而锁定了2个链接.... 所以这里是一切的代码...... http://pastebin.com/Gmvg5r9F

有人有想法吗?我该怎么做这个功能呢?我很绝望......如果你有答案,请... ^ _ ^

祝大家新年快乐:p

编辑:package.json如果你需要:“http:”// pastebin.com/cBg73WAF

EDIT²:Srsly,我已经尝试了所有包装但没有任何作用......我的项目实际上已被阻止......

1 个答案:

答案 0 :(得分:0)

首先,您获得了koa deprecated Support for generators will been removed in v3. See the documentation,因为您正在使用koa v2koa v1“兼容”的中间件,但您可以使用koa-convert轻松解决此问题基于所有generator的中间件到新的koa v2 async / await标准并使用它没有问题。

koa转换示例

const convert = require('koa-convert');
app.use(convert(serve(__dirname + '/public')));

最后,我认为您正面临第二个错误,因为您使用的是serve而不是send而且会触发您刚刚放弃的koa-static