我需要使用 TypeScript
从 Node 服务器进行 ajax 调用。
我将如下所示的 jquery
导入到我的类中
import * as $ from "jquery"
如果我将鼠标悬停在我的实现上,它会识别 ajax,如下所示
然后,我将此 TypeScript 编译为 JavaScript。成功了。
如果我托管 Node 服务器并尝试访问此功能,我会收到以下错误
TypeError : $.ajax is not a function.
我想我错过了一些东西。我无法弄清楚这些事情。
最佳答案
不要这样做; jQuery是针对客户端的,而不是服务器端
正如评论中提到的,您应该使用服务器端 HTTP 客户端,例如内置的 http.request
方法,或者根据您的需要使用诸如 npm-fetch
或 Axios 之类的库。
但是,假设您使用的是 jquery
npm 包,请注意 package page 中的以下引用:
For jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as jsdom.
npm 包提供的是一个工厂,用于实例化注入(inject)了伪造的 window
的 jQuery。他们给出了如何做到这一点的示例,但这部分非常具有启发性:
This can be useful for testing purposes.
“用于测试目的”是指在 NodeJS 中运行单元测试作为客户端包的构建管道的一部分等目的。不作为在 Node 中使用的通用库。
关于javascript - 在 Node 服务器中使用 JQuery - TypeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47816340/