【问题标题】:NODE JS - TypeError: Path must be a string. Received { requestNODE JS - TypeError:路径必须是字符串。收到{请求
【发布时间】:2017-05-18 03:42:57
【问题描述】:

大家好(和女孩)^^

我正在使用 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,我已经尝试了每个包,但没有任何效果...我的项目实际上被阻止了...

【问题讨论】:

  • 有人可以帮帮我吗?我对这个 koa-send、静态或其他的东西真的很绝望……

标签: node.js typescript koa koa2


【解决方案1】:

首先你得到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

【讨论】:

  • 您好,感谢您的回答。我不认为我的第二个错误是因为我使用了“服务”而不是“发送”,因为我只是修改了名称。 import * as serve from "koa-send"; 为了节省时间,我只修改静态发送,反之亦然
  • @Ravaniss 哦……好吧。您是否尝试过对您传递的内容做一些console.logs 以确保它确实是您正在寻找的东西?还有path.join(__dirname, '/public')?
  • 我在使用 koa-convert 时遇到错误... (节点:164072)DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。`
  • @Ravaniss 我已经更新了我上面的评论.. ^ 你也应该更新你的问题并在你的代码中包含更多的代码示例。
  • 您在 pastebin 中拥有所有内容。是的,path.join(__dirname, '/public'); 的路径很好我已经用这个更新了我的代码,更清晰。
猜你喜欢
  • 2016-10-13
  • 2019-06-04
  • 1970-01-01
  • 1970-01-01
  • 2016-04-29
  • 1970-01-01
  • 2017-04-23
  • 1970-01-01
  • 2023-03-26
相关资源
最近更新 更多