所以我在Node JS中做了一个REST Api,现在我有了一个阻止程序.
app.use('/api', router);
此代码确保每个URL都以api为前缀.现在如果我想在路径只是"/"时提供HTML文件呢?我应该创建另一个"快递"应用程序吗?我现在只在localhost工作,我必须做"node server.js"来启动服务器.我不能同时启动2台服务器,或者我可以吗?一个用于api:server.js,另一个用于代码的其余部分:client.js(这是一个坏名称,但无论如何.).我对如何设置东西很困惑......
谢谢你的帮助.
您可以看到您使用api路由,很可能是为JSON内容提供服务.好吧,使用相同的机制,您可以配置路由器为特定路由提供任何其他类型的内容.
因此,如果您想为应用程序的根目录提供一些HTML内容,请说明您的Wiki页面或文档,它就像以下一样简单:
app.get('/', function(req, res){ res.render('index.html'); });
当然,如果您只是渲染一个静态html页面,您也可以配置一个中间件来定义放置所有静态内容的位置.
app.use(express.static(path.join(__dirname, 'www')));
哪里www
是你选择把你的目录index.html
页.
话虽如此,如果您构建的是REST API,那么它可能会被多个其他应用程序重用,因此,客户端应用程序通常独立于REST API运行.某些客户端应用程序甚至可能不是Web应用程序(即Android,iOS,桌面应用程序等).因此,在考虑在同一个项目中开发Web客户端之前,您应该考虑到这一点.
但是没有什么可以阻止您提供在同一项目/服务器中使用REST API的默认UI实现.是的,可以运行多个服务于不同应用程序的HTTP服务器.如果您为API使用单独的服务器(即CORS),则可能需要考虑一些注意事项.
如果您决定在同一个应用程序中提供所有内容,您可能希望确保设计中存在明显的分离,使客户端应用程序消耗并使用其余层,就好像它是独立的一样.您应该将REST层的路由与用于客户端的路由隔离开来,以便以后如果要使客户端APP独立运行,则不会出现问题.
如何使用express-namespace来帮助您组织路线?