Node JS REST API,现在我如何提供HTML文件?

 呆瓜. 发布于 2023-01-12 12:27

所以我在Node JS中做了一个REST Api,现在我有了一个阻止程序.

app.use('/api', router);

此代码确保每个URL都以api为前缀.现在如果我想在路径只是"/"时提供HTML文件呢?我应该创建另一个"快递"应用程序吗?我现在只在localhost工作,我必须做"node server.js"来启动服务器.我不能同时启动2台服务器,或者我可以吗?一个用于api:server.js,另一个用于代码的其余部分:client.js(这是一个坏名称,但无论如何.).我对如何设置东西很困惑......

谢谢你的帮助.

1 个回答
  • 您可以看到您使用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来帮助您组织路线?

    2023-01-12 12:28 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有