我正在将基于 node.js 的应用程序部署到 IBM 的 Bluemix,并向他们提供的其中一个示例添加了一些功能。我已经添加了一个额外的 javascript 文件,该文件对 PHP 进行 ajax 调用,但是由于我的路径不正确,PHP 文件返回时未找到。我试过将文件放在各处,但就是找不到。我在想(作为一个完全的 Node 新手)我缺少一些神秘的配置或其他东西。
在主目录中(除其他外),结构如下:
-- views
- index.ejs (this is the main displayed code)
-- public
- js
- custom.js (my added file)
- all the other necessary js files
- css
- img
- php - I added this directory
- get-twitter.php - I added this...custom.js makes an ajax call here
在 custom.js 中,我有这个:
$("#get-twitter").click(function(event) {
handle = $('#twitter-handle').val();
$.ajax({
url: 'php/get-twitter.php',
type: 'POST',
dataType: 'JSON',
data: {
handle: handle,
},
success: function(data) {
console.log(data);
$.each(data, function(index, val) {
console.log(val.text);
});
}
});
});
当我尝试进行此调用时,找不到文件,但路径是这样的:https://myapp.mybluemix.net/php/get-twitter.php
它应该在 views/php/get-twitter.php
中,但我猜这是我这边的配置问题。
我已经尝试了每次迭代:url: 'php/get-twitter.php',
并将 PHP 文件放在每个目录中,但没有任何效果。
我在这里错过了什么?
最佳答案
无法从 Node 运行 PHP 脚本。您将需要设置一个支持 PHP 的服务器,并在那里发出您的请求。一种选择是 Apache .
实际上,您可能不想为了运行单个 PHP 脚本而设置整个服务器。更合理的解决方案是将 PHP 脚本移植到 Node.js 上运行。 NPM 上有许多用于 Twitter API 集成的包(例如 twitter 模块)。
关于javascript - 使用 Node.js 的文件路径问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41192758/