Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NextJS:使用自定义服务器(NestJS)呈现特定页面_Javascript_Reactjs_Typescript_Next.js_Nestjs - Fatal编程技术网

Javascript NextJS:使用自定义服务器(NestJS)呈现特定页面

Javascript NextJS:使用自定义服务器(NestJS)呈现特定页面,javascript,reactjs,typescript,next.js,nestjs,Javascript,Reactjs,Typescript,Next.js,Nestjs,我正在尝试将NestJS用作NextJS的一个简化版本,如中所述,简化版本如下: @Controller(“/”) 导出类ViewController{ @获取('*')) 异步静态(@Req()Req:Request,@Res()Res:Response){ //这将返回下一个()应用程序,如中所述https://nextjs.org/docs/advanced-features/custom-server const server=this.viewService.getNextServer

我正在尝试将NestJS用作NextJS的一个简化版本,如中所述,简化版本如下:

@Controller(“/”)
导出类ViewController{
@获取('*'))
异步静态(@Req()Req:Request,@Res()Res:Response){
//这将返回下一个()应用程序,如中所述https://nextjs.org/docs/advanced-features/custom-server
const server=this.viewService.getNextServer();
const handle=server.getRequestHandler();
句柄(req、res);
}
}
只要我为任何路由注册处理程序(即
@Get('*')
),这就可以正常工作。例如,当我访问
/home
时,会呈现
页面/home.tsx

但是,由于我只想为特定页面注册它,例如
@Get('/home')
。在这种情况下,我从Next得到一个空的404页面(页面上没有内容,标题为404)。控制台显示:

event - build page: /next/dist/pages/_error
wait  - compiling...
event - compiled successfully
NestJS在后台使用express,所以我想这会转换成类似于
server.get('/home',handle)的东西。如果我尝试使用正则表达式,例如
@Get(/^\/(?!graphql)。*/)
,也会出现同样的问题。如果我尝试
@Controller('/home')
@Get('*')
,也会出现同样的问题


寻找一些解决方案,使Nest应用程序服务于特定的下一页。我知道,但我更喜欢只设置一个普通控制器。

最终使用了下一步的
渲染方法,如中所述:

@Controller(“/”)
导出类ViewController{
@回家
公共异步showHome(@Req()Req:Request,@Res()Res:Response){
const parsedUrl=parse(req.url,true);
//这将返回下一个()应用程序,如中所述https://nextjs.org/docs/advanced-features/custom-server
const server=this.viewService.getNextServer();
wait server.render(req、res、parsedUrl.pathname、parsedUrl.query);
}
}