您可以看到,您很可能使用 api 路由来提供 JSON 内容。好吧,使用相同的机制,您可以将路由器配置为为特定路由提供任何其他类型的内容。
所以,如果您想为您的应用程序的根目录提供一些 HTML 内容,比如说您的 API 的 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 这样的东西来帮助你组织你的路线怎么样?