Javascript 在节点服务器-TypeScript中使用JQuery

Javascript 在节点服务器-TypeScript中使用JQuery,javascript,jquery,node.js,ajax,typescript,Javascript,Jquery,Node.js,Ajax,Typescript,我需要使用TypeScript从节点服务器进行ajax调用。 我正在导入jquery,如下所示 import * as $ from "jquery" 如果我将鼠标悬停在我的实现上,它会识别ajax,如下所示 然后,我将这个类型脚本编译成JavaScript。这是成功的 如果我托管节点服务器并尝试访问此功能,则会出现以下错误 TypeError : $.ajax is not a function. 我想我错过了什么。我无法把事情弄清楚。不要这样做;jQuery用于客户端,而不是服务器 如

我需要使用
TypeScript
从节点服务器进行ajax调用。 我正在导入
jquery
,如下所示

import * as $ from "jquery"
如果我将鼠标悬停在我的实现上,它会识别ajax,如下所示

然后,我将这个类型脚本编译成JavaScript。这是成功的

如果我托管节点服务器并尝试访问此功能,则会出现以下错误

TypeError : $.ajax is not a function.

我想我错过了什么。我无法把事情弄清楚。

不要这样做;jQuery用于客户端,而不是服务器

如注释中所述,您应该根据需要使用服务器端HTTP客户端(如内置方法)或库(如
npm fetch
或Axios)


但是,假设您使用的是
jquery
npm包,请注意以下引用:

要使jQuery在节点中工作,需要一个包含文档的窗口。由于节点中本机不存在这样的窗口,因此可以使用诸如jsdom之类的工具来模拟

npm包提供的是一个工厂,用于实例化使用伪造的
窗口注入的jQuery。他们给出了一个如何做到这一点的例子,但这一部分很有启发性:

这对于测试目的很有用


“用于测试目的”指的是在nodejs中运行单元测试,作为客户端包构建管道的一部分。不是作为节点中使用的通用库。

从节点使用jQuery毫无意义。您应该使用服务器端HTTP客户机,如Axios或Request……如果您确实想在node中使用jquery进行HTML解析和遍历,最好使用它,它与jquery具有相同的API,但在服务器上使用更快的无DOMless实现。