我正在使用Angular2开发NodeJS应用程序。在我的应用程序中,我有一个主页和搜索页面。对于主页,我有一个将为localhost:3000 /呈现的HTML页面,并且从主页用户导航到搜索,即我由angular2路由处理的localhost:3000 / search页面。
我没有搜索页面的页面,其视图由angular2呈现。但是当我直接点击localhost:3000 / search时,因为我的节点应用程序中没有此路由,所以会出现错误。
我不知道如何在节点应用程序中处理此问题?
如果localhost:3000/search
直接在浏览器导航栏中输入,浏览器将向服务器发出“ /搜索”请求,该请求可以在控制台中看到(请确保选中“保留日志”按钮)。
Navigated to http://localhost:3000/search
如果运行全静态服务器,则会生成错误,因为服务器上不存在搜索页面。例如,使用express,您可以捕获这些请求并返回index.html文件。angular2引导程序启动,并且@RouteConfig中描述的/ search路由已激活。
// example of express()
let app = express();
app.use(express.static(static_dir));
// Additional web services goes here
...
// 404 catch
app.all('*', (req: any, res: any) => {
console.log(`[TRACE] Server 404 request: ${req.originalUrl}`);
res.status(200).sendFile(index_file);
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句