Я пытаюсь добавить слаг: id в URL для записи блога в моем приложении next.js.Это работает, если я просто перехожу по ссылке из приложения на страницу, но если я обновляю страницу в сообщении или получаю прямой доступ к странице, я получаю следующую ошибку:
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type object
at assertPath (path.js:39:11)
at extname (path.js:835:5)
at new View (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\view.js:56:14)
at Function.render (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\application.js:570:12)
at app.get (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\server.js:31:16)
at Layer.handle [as handle_request] (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\router\layer.js:95:5)
at next (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\router\layer.js:95:5)
at E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\router\index.js:281:22
at param (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\router\index.js:354:14)
at param (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\router\index.js:365:14)
at Function.process_params (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\router\index.js:410:3)
at next (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\router\index.js:275:10)
at jsonParser (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\body-parser\lib\types\json.js:110:7)
at Layer.handle [as handle_request] (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\router\index.js:317:13)
at E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\router\index.js:284:7
at Function.process_params (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\router\index.js:335:12)
at next (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\router\index.js:275:10)
at expressInit (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\middleware\init.js:40:5)
at Layer.handle [as handle_request] (E:\Web Pages\React Apps\Full Stack\Nextjs-Blog\node_modules\express\lib\router\layer.js:95:5)
Я прочитал документацию Next Js Docs со ссылкой , и я делаю это точно так, как описано.
Вот мой код:
server.js
nextApp.prepare().then(() => {
const app = express();
app.use(express.json());
app.get('/post/:id', (req, res) => {
return app.render(req, res, '/post', { id: req.params.id });
});
app.get('*', (req, res) => {
return handle(req, res);
});
app.listen(PORT, err => {
if (err) throw err;
console.log(`ready at http://localhost:${PORT}`);
});
});
Ссылка настраница
<Link as={`/post/${post._id}`} href={`/post?id=${post._id}`}>
<a>Link text</a>
</Link>
В соответствии с документацией это должно быть написано.Я не уверен, какие шаги я пропустил или, возможно, есть проблема с веб-пакетом или чем-то.Если вам нужна дополнительная информация, дайте мне знать, что любая помощь будет признательна.