簡體   English   中英

使用Node.js的文件路徑問題

[英]File path issue using Node.js

我正在將基於node.js的應用程序部署到IBM的Bluemix中,並為其提供的示例之一添加了一些功能。 我添加了一個附加的javascript文件,該文件對PHP進行了ajax調用,但是由於我的路徑不正確,該PHP文件又回來了,但找不到。 我試過將文件放到任何地方,但找不到。 我在想(作為一個總節點noobie)我缺少一些神秘的配置或某些東西。

在主目錄中(除其他外),結構如下:

-- 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 : https://myapp.mybluemix.net/php/get-twitter.php它應該在views/php/get-twitter.php ,但是我猜這是我的配置問題。

我已經嘗試過每次迭代: url: 'php/get-twitter.php',並將PHP文件放在每個目錄中,但沒有任何效果。

我在這里想念什么?

無法從節點運行PHP腳本。 您將需要設置一個支持PHP的服務器,然后在其中進行請求。 一種選擇是Apache

實際上,您可能不想為了運行單個PHP腳本而設置整個服務器。 一個更合理的解決方案是移植PHP腳本以在Node上運行。 NPM上有許多用於Twitter API集成的軟件包(例如twitter模塊)。

如果服務器已安裝PHP,則可以嘗試使用exec通過命令行解釋器運行PHP文件並獲取輸出。 顯然,您需要重構代碼以使用由shell( $args )傳遞的$args並顯示將由node捕獲的JSON響應。 例如:

exec('php -f /project/file.php', function (err, out) {
  if (!err) {
    const output = JSON.parse(out);
    // do something with the object
  }
});

就像@positlabs所說的那樣,使事情更簡單,並將腳本移植到JavaScript。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM