如何创建可以从Python调用的JavaScript API?
我使用Node.js用JavaScript编写了一个程序(目前更像是一个网站)。你可以在这里找到它: 我对一些与JavaScript有关的事情有点困惑,我也想知道如何从python文件运行包含JavaScript API的函数 首先是一些背景。 该程序的目的是使用WikipediaAPI下载特定页面上的所有图像、它们各自的描述,然后下载主体页面。它为我桌面上的每个页面创建一个新文件,以该页面命名,所有文件都放在那里 到目前为止,处理从Wikipedia获取所有数据的Wiki.js文件是在和index.ejs(类似于和html)的服务器上运行的。节点运行启动服务器的app.js。您转到并键入所需Wikipedia页面的名称,它会将该名称发送到Wiki.js,Wiki.js收集图像URL和文本字符串,并将它们发送到wikiController.js,wikiController.js不在服务器上托管,它负责创建具有页面名称的文件夹,并将图像和文本文件下载到其中 我的问题。如何创建可以从Python调用的JavaScript API?,javascript,java,python,node.js,api,Javascript,Java,Python,Node.js,Api,我使用Node.js用JavaScript编写了一个程序(目前更像是一个网站)。你可以在这里找到它: 我对一些与JavaScript有关的事情有点困惑,我也想知道如何从python文件运行包含JavaScript API的函数 首先是一些背景。 该程序的目的是使用WikipediaAPI下载特定页面上的所有图像、它们各自的描述,然后下载主体页面。它为我桌面上的每个页面创建一个新文件,以该页面命名,所有文件都放在那里 到目前为止,处理从Wikipedia获取所有数据的Wiki.js文件是在和ind
app.listen(3000, function() {
console.log('we be listening to da port of 3000');
});
但是“wikiController(app);”首先发生,那么wikiController.js是否只是编辑“app”对象/不管它是什么,以便在下一行服务器启动时,它知道pare的html(ejs)是什么,以及如何处理所有请求
这又回到了我的第一个问题,因为我认为“Java创建了在虚拟机或浏览器中运行的应用程序,而JavaScript代码仅在浏览器上运行。”node允许我在计算机上运行JavaScript吗?我很困惑
非常感谢您提前提供的任何帮助 好的,让我们一点一点地看,大致按照您要求的顺序,但在某些地方有所偏差 这里有很多问题。首先也是最重要的一点是,您并不真正了解Node.js是什么或它的功能。正如您所建议的,Node.js是JavaScript的服务器端实现——换句话说,它允许您在服务器上运行JavaScript,完全独立于web浏览器(在本例中,服务器是
localhost
)。在尝试实现类似的东西之前,我真的建议您回去学习您正在使用的框架的基础知识
如果Wiki.js
正在与Node.js服务器交互,则是的,您需要在服务器上进行交互。因为我不知道Wiki.js
所包含的细节,所以很难比这更具体。同样,回到Node.js的基础知识可能会有所帮助
wikiController
在您的服务器上运行,您在您的服务器app.js
中调用它就证明了这一点。调用wikiController(app)
会“编辑”应用程序
对象,一旦您开始监听连接,可能会扩展其功能
GitHub不是服务器主机。GitHub页面是静态HTML,因此无法在其上运行API。我建议您看看,这将允许您托管一个Node.js服务器来测试您的API。它是免费的,有一些限制,但它们可能不会影响您的测试。它还与GitHub集成,因此您可以将更改提交到GitHub存储库,并在web服务器上自动更新这些更改
为了“使用.py或.java运行app.js”,如果您在本地运行Node.js应用程序,则需要使用Python或java向localhost
发出web请求,或者如果您选择在web上托管它,则需要通过公共web URL发出web请求
在我看来,您在这里遇到的大多数问题都是由于缺乏Node.js、JavaScript和API的基本知识。这不是一件坏事,但我建议您先找一个关于创建简单服务器的深入课程或指南,然后再从那里开始。您的API应该托管在始终运行的服务器上—您不能将其托管在Github上(Github只托管代码)。从那里,您将能够从任何其他机器(包括同一台机器)调用API。在这种情况下,node.js应用程序就是服务器。接下来,您可以创建一个客户端应用程序/脚本来
app.listen(3000, function() {
console.log('we be listening to da port of 3000');
});
//example 1
$.ajax({
type: 'POST',
url: '/wiki/' + 'descriptions',
data: tempDes,
success: function(sendData) {
}
});
//example 2
$.ajax({
type: 'POST',
url: '/wiki/' + foldername,
data: foldername,
success: function(folderData) {
}
});