NODE JS — TypeError: путь должен быть строкой. Получен { запрос

Привет, ребята (и девушки) ^^

Я использую koa2, koa-router, koa-static (попробуйте..) и не использую koa-send... но ничего не работает, и мне нужна ваша помощь. :D

Так что на самом деле мои файлы js не найдены... и у меня есть это. ..

Итак, я установил 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 заблокировал меня двумя ссылками из-за репутации.... так что вот код всего... http://pastebin.com/Gmvg5r9F

У кого-нибудь есть идея, пожалуйста? Как я могу сделать это функциональным? Я в отчаянии... если у вас есть ответ, пожалуйста... ^_^

И всех с наступающим Новым годом :p

РЕДАКТИРОВАТЬ: package.json, если вам нужно: "http:"//pastebin.com/cBg73WAF

РЕДАКТИРОВАТЬ²: Srsly, я пробовал каждый пакет, и ничего не работает... Мой проект фактически заблокирован...


person Ravaniss    schedule 03.01.2017    source источник
comment
Кто-нибудь может мне помочь, пожалуйста? Я действительно в отчаянии с этим koa-send, статикой или чем-то еще...   -  person Ravaniss    schedule 04.01.2017


Ответы (1)


Во-первых, вы получаете koa deprecated Support for generators will been removed in v3. See the documentation, потому что используете koa v2 с koa v1 "совместимым" промежуточным ПО, но вы можете легко обойти это, используя koa-convert для преобразования всех промежуточных программ на основе generator в новые стандарты koa v2 async/await и использовать их без проблем.

Пример преобразования коа

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

Наконец, я думаю, что вы столкнулись со второй ошибкой, потому что вы используете serve вместо send, и это вызывает koa-static, от которого вы только что отказались.

person ArchNoob    schedule 04.01.2017
comment
Здравствуйте, спасибо за ответ. Я не думаю, что моя вторая ошибка связана с тем, что я использовал serve вместо send, потому что я просто изменил имя. import * as serve from "koa-send"; чтобы сэкономить время, я изменяю только статические данные для отправки и наоборот - person Ravaniss; 04.01.2017
comment
@ Раванисс ох.. ладно. Пробовали ли вы делать некоторые console.logs с тем, что вы передаете, чтобы убедиться, что это именно то, что вы ищете? Также path.join(__dirname, '/public') ? - person ArchNoob; 04.01.2017
comment
Я получаю сообщение об ошибке с koa-convert... ` UnhandledPromiseRejectionWarning: Отклонение необработанного обещания (отклонено: 1): Ошибка: Невозможно установить заголовки после их отправки. (узел: 164072) Предупреждение об устаревании: отказы от необработанных обещаний устарели. В будущем отказы от обещаний, которые не будут обработаны, завершат процесс Node.js с ненулевым кодом выхода. - person Ravaniss; 04.01.2017
comment
@Ravaniss я обновил свой комментарий выше .. ^ также вы должны обновить свой вопрос и включить больше примеров кода, которые у вас есть в вашем коде. - person ArchNoob; 04.01.2017
comment
У вас есть все на pastebin. И да, путь хорош с path.join(__dirname, '/public'); Я обновил свой код этим, более понятным. - person Ravaniss; 04.01.2017