Javascript NextJS动态路由-是否可以设置路由名称数组?
我正在我的应用程序中使用动态路由。这是我正在使用的文件夹结构Javascript NextJS动态路由-是否可以设置路由名称数组?,javascript,reactjs,axios,next.js,Javascript,Reactjs,Axios,Next.js,我正在我的应用程序中使用动态路由。这是我正在使用的文件夹结构 -pages -department -[slug].js 现在,如果slug值仅为cse、eee、swe、english e.t.c我想显示页面,否则我想显示404 Not Found页面。有没有办法设置路由名称数组?然后,如果slug值(我可以使用getServerSideProps获得)包含在该数组中,我将为该页面提供服务,否则为404notfound页面提供服务 我为什么需要它? 在getServerSidePr
-pages
-department
-[slug].js
现在,如果slug值仅为cse、eee、swe、english e.t.c
我想显示页面,否则我想显示404 Not Found
页面。有没有办法设置路由名称数组?然后,如果slug值(我可以使用getServerSideProps
获得)包含在该数组中,我将为该页面提供服务,否则为404notfound
页面提供服务
我为什么需要它?
在getServerSideProps
函数中,我从api端点获取数据。在这种情况下,如果api端点中不包含slug值,服务器将抛出请求失败,状态代码501
错误!
因此,如果slug值为cse,则api端点可用,我可以获取数据。如果slug值为
anything或xyasdfs
,则api端点不可用,我无法获取数据,服务器抛出以下错误。我将在我的组件中检查响应正文中的属性。。例如,如果所有部门都有一个名称,则检查它,如果它不存在,则返回404。我会在我的组件中检查响应正文中的属性。。比如,如果所有部门都有一个名称,那么检查它,如果它不存在,那么返回一个404。从服务器端渲染应该是这样的
Page.getInitialProps = async ({query}) => {
if(query.slug == 'cse') {
//codes
}
}
或者你可以使用下一个路由器钩子
从服务器端渲染应该是这样的
Page.getInitialProps = async ({query}) => {
if(query.slug == 'cse') {
//codes
}
}
或者你可以使用下一个路由器钩子
我手动比较slug值,但我在寻找更好的解决方案。我手动比较slug值,但我在寻找更好的解决方案。