javascript - 在 Node 服务器中使用 JQuery - TypeScript

标签 javascript jquery node.js ajax typescript

我需要使用 TypeScript 从 Node 服务器进行 ajax 调用。 我将如下所示的 jquery 导入到我的类中

import * as $ from "jquery"

如果我将鼠标悬停在我的实现上,它会识别 ajax,如下所示

enter image description here

然后,我将此 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/

相关文章:

javascript - 从 PHP if 语句运行 JavaScript

javascript - 我什么时候需要担心 JavaScript 中的浮点错误?

javascript - 这不是javascript中的指针功能吗?

node.js - 如何检测脚本是使用 npm 还是 yarn 运行?

javascript - Material-ui 从 react-router 添加到单选按钮组件的链接

javascript - 如何将 JSON 文件导入到 javascript 数组

javascript - 应用新运算符时有什么区别?

javascript - 如何验证输入类型文件字段

javascript - 使用express的静态中间件时没有任何反应

javascript - 如何在 page.goto 函数中为每个请求设置超时选项