如何创建基于节点的服务器以服务REST API并部署应用程序。

时间:2018-07-26 07:26:01

标签: node.js http express

我是nodeJS服务器领域的新手,需要帮助来了解如何使用REST API(使用express)以及如何在单个节点服务器和相同端口上部署角度应用程序。

通过部署,我想了解如果用户在url http://localhost:8000/<page_name>以下命中,则应打开指定的页面。 并使用get或post请求将用户打到url以下吗 http://localhost:8000/api/<api_name>,然后将返回json或文本。

如何在单个节点服务器上同时运行这两个功能。

2 个答案:

答案 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'))

请提供您的建议。