next.js 在动态路由中使用getServerSideProps

wlzqhblo  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(159)

我正在尝试在文件[username].js中使用getServerSideProps(它使用动态路由)。要在next.js中使用动态路由,您需要使用两个函数getStaticPaths()getStaticProps({ params })。您不能将getServerSidePropsgetStaticProps一起使用。这是一个问题,因为我需要使用getServerSideProps({ req, res })来访问包含重要用户信息的标头(比如req.headers['x-user-name']),如果没有这些数据,我就无法正确地向应用程序添加功能。

6rqinv9w

6rqinv9w1#

在动态布线文件中不需要使用getStaticPathsgetStaticProps
您可以只使用getServerSidePropsparams对象来获取其中的用户名。
示例用法:

export async function getServerSideProps({ params, req }) {
    let pageUserInDb = await User.findOne({ username: params.username }).populate('userRoles');
    return {
        props: {
            pageUser: pageUserInDb
        }
    }

相关问题