【发布时间】:2021-04-02 15:37:18
【问题描述】:
我正在尝试构建一个远程服务器(或 api?——有什么区别?),这样我基本上可以对有问题的 http(s):// url 执行获取请求并取回存储的 JSON 对象模型在那个网址。但是,每当我搜索“构建 RESTful API node.js”或“构建远程服务器 node.js”之类的内容时,我通常会得到一个类似 this 的教程,它似乎只告诉我如何构建一个在本地主机端口。
如果不清楚,我对 node 很陌生,所以如果这个问题是完全基本的,请原谅我:在构建远程服务器时,我基本上只是放了这样的东西
const modelJSON = require('path/from/root/of/remote/server/repo/to/model.json');
const express = require("express");
const bodyParser = require("body-parser");
const CORS = require("cors");
const app = express();
app.use(bodyParser.json());
app.use(CORS());
let modelObj = modelJSON;
app.get("/", (req, res) => {
res.send(modelObj);
});
在 server.js 文件中,与相关模型(及其 shard.bin 文件...)一起存储在 Azure 或 AWS 中的远程存储库中吗?
【问题讨论】:
-
每台计算机都有一个本地主机,而“服务器”只是另一台具有本地主机的计算机,它是一个静态 IP,可以将传入流量路由到它的本地主机......所以当你构建一个节点 API 时,你运行通常在 localhost 上,然后有类似 Nginx 或 Apache 的东西代理所有传入的请求到你的节点应用程序上的 localhost 上的一个端口。
-
我很久以前写的对 http/2 的旧介绍显示了一个 nginx 配置,底部有一个节点代理。它还向您解释了在配置新服务器并拥有 ssh 访问权限后如何设置新服务器 gist.github.com/dominikwilkowski/…
-
“因此,当您构建节点 API 时,您通常会在 localhost 上运行它,然后让 Nginx 或 Apache 之类的东西代理所有传入请求到您的节点应用程序的 localhost 上的端口。” — 好的,所以 Nginx/Apache/(Heroku?) 将传入请求(get、post、put 等)重定向到服务器的给定端口,该端口(因为 node server.js 文件)被指示监听该端口端口,然后通过从也包含在该服务器上的文件(即与 server.js 文件包含在相同(在本例中为远程)目录中的文件/数据)中提供某些数据来响应。对吗?
-
是的,但我不确定 Heroku 等及其设置。我假设他们已经为您设置了所有内容,而您只需设置 package.json 中的部分或其他内容。我猜值得谷歌搜索
标签: node.js reactjs amazon-web-services azure