在我的Angular应用程序中,如果我加载主页
解决方案是发送
如何在Nest中实现相同的功能?
Nest中有一个
我真的需要为此创建一个完整的独立模块和控制器吗?那就是我所做的事情。
/
,然后导航到/products
,它可以正常工作(这是一个懒加载的模块)。但是如果现在重新加载页面,则浏览器会向服务器发出GET /products
调用,结果返回404错误。解决方案是发送
index.html
文件,Angular应用程序就可以正确运行了。所以在Express中,我使用app.all("*", (req,res) => { res.sendFile("index.html") })
代码进行设置,它就可以正常工作。如何在Nest中实现相同的功能?
Nest中有一个
@All
装饰器,但是每个控制器都处理给定组件内的子路由,例如@Controller("cats")
将匹配/cats
路径,因此如果我在该控制器中添加@All
,它只会匹配/cats/*
,而不是*
。我真的需要为此创建一个完整的独立模块和控制器吗?那就是我所做的事情。
@Controller() // Matches "/"
export class GenericController {
@All() // Matches "*" on all methods GET, POST...
genericFunction(){
console.log("Generic route reached")
}
}
在我的主模块中:
@Module({
imports: [
ItemsModule, // Other routes like /items
GenericModule, // Generic "*" route last
],
})
它可以运作,但似乎有点过度。这是正确的方法还是有更简单的技巧?
angular-cli
。由于它使用了angular-cli
,前端应用程序使用单独的express
实例,并且已经配置好处理未找到的请求... - Yerkonangular-cli
使用单独的 express 实例。 - Yerkonng serve
,不是吗?这是CLI的内置服务器。我没有使用ng serve
,我正在构建自己的服务器。无论如何,你的答案起作用了。谢谢! - Jeremy ThilleNestJS
✌ - Yerkon