我是nodeJS服务器领域的新手,需要帮助来了解如何使用REST API(使用express)以及如何在单个节点服务器和相同端口上部署角度应用程序。
通过部署,我想了解如果用户在url http://localhost:8000/<page_name>
以下命中,则应打开指定的页面。
并使用get或post请求将用户打到url以下吗
http://localhost:8000/api/<api_name>
,然后将返回json或文本。
如何在单个节点服务器上同时运行这两个功能。
答案 0 :(得分:1)
假设,您的所有静态文件都位于应用程序的/public
文件夹中。通常来说,如果您使用的是express.static
,则还应该获取index.html
,因为默认情况下,每个目录都会处理此问题。
在您的情况下,当您使用Angular时,路由是从客户端(SPA)处理的。构建Angular应用程序后,您只应有一个index.html
。然后,应将dist
文件夹中的所有文件放入/public
文件夹中。然后,您需要确保该初始文件投放可以像这样提供index.html
:
在此示例中,首先提供静态文件,然后提供您的API,如果未找到任何内容,则您将获得索引文件。
const express = require('express');
const app = express();
// serve static files
app.static(__dirname + '/public'));
// serve your API
app.get('/api/welcome', function (req, res) {
res.send('Welcome');
});
// fallback routing (server side handling)
app.get(/.*/, function (req, res) {
res.sendFile(__dirname + ‘/public/index.html‘
});
app.listen(3000);
下次请确保提供您问题中的所有必要信息;-)
答案 1 :(得分:0)
到目前为止,在Sebastian
的帮助下,我可以找到一个解决方案,但是当我在不同页面上访问URL时,它不起作用。
const express = require('express');
const app = express();
app.use(express.static('public'))
请提供您的建议。