【发布时间】:2017-02-16 16:47:25
【问题描述】:
无论我为 node 使用哪个库,它们都需要绝对 URL。
这意味着我需要构建一个 fetch curry,然后通过函数链传递该 fetch 以便能够发出请求,或者我需要在确定我是在生产还是开发之后定义一个常量,然后每当我的环境发生变化时更新该 URL。
不管怎样,为什么节点需要 URL 的主机名?
是否有更无缝的方式在我的应用中的任何位置(包括函数链深处)执行服务器端请求?
代码示例:
node index.js
index.js
let app = Express();
app.use('ace', (req, res) => foo());
app.use('somedata.json', (req, res) => res.status(200).send('{"hello": "world"}'));
foo.js
() => bar();
bar.js
() => bat();
bat.js
() => fetch('/somedata.json').then(console.log);
【问题讨论】:
-
谁在不发表评论的情况下投反对票?
-
我不明白您遇到的实际问题。在服务器端发出 HTTP 请求时,没有相对于您可以发出请求的“基本 HREF”之类的东西,因此需要绝对 URL。
-
所以 express.listen 没有为其他库设置任何全局变量来查找相对于主机 url。这回答了我的第一个问题。它没有回答我的第二个问题“有没有更无缝的方式在我的应用程序的任何地方进行服务器端请求?”
-
您的示例代码会创建一个无限循环。
-
我不明白你的意思。怎么样?
标签: node.js express isomorphic-fetch-api