2017-05-07 8 views
0

node.jsからDrupal .moduleファイルへのポストリクエストを送信しようとしています。私の問題は、要求が行われたときにモジュールファイルがApacheによってPHPとして実行されることはないということです。PHPからの応答を得る代わりに、文字列として(.moduleファイル内の)リテラルコードを取得します。DrupalモジュールファイルへのPOST要求の送信

私はPHPとして実行する.moduleを可能にしようとした

.htaccessファイルに次のように置くことによって(わからないセキュリティへの影響):

のAddHandlerがapplication/x-httpd-phpの.module

(および事実上すべて私が見つけることができるそのコマンドの他の組み合わせ)

しかし、運がありません。

node.jsから送信された投稿要求は、同じサーバー上の.phpファイルに送信されたときに機能するため、完全に問題ありません。私はそれをDrupalモジュール内で動作させることはできません。私はDrupalのAPIを利用したいのでDrupalモジュールに送りたいと思っています(Drupalのユーザーテーブルに多くの変更を加えるつもりです)。

ノードからプログラマチックに投稿要求をDrupalモジュールに送信し、その応答を読み取るにはどうすればよいですか?私はそれを単純な.phpファイルに送る方法を知っていますが、drupalモジュールにはありません。

+0

実行しようとしているコードを表示してください。完全に動作しているDrupalサイトにモジュールがありますか?どのバージョンのdrupal? – 2pha

+0

Drupal v.7。私が実行しようとしているコードは、単純にpostリクエストを返します。echo json_encode($ _ POST); –

+0

これは混乱します。投稿リクエストはどこに送っていますか?関数を実行して応答を返すパス(hook_menu)を設定するモジュールが必要です。質問にモジュールコードを投稿してください – 2pha

答えて

1

モジュールファイルにmenuを作成します。

function mymodule_menu() { 
    $items['post-link'] = array(
    'page callback' => 'mymodule_abc_view', 
    ); 
    return $items; 
} 

このメニューリンクの投稿リクエストは、Node.jsから送信してください。

YOURSITENAME /ポスト・リンク?DATA1 = ABC & DATA2 = defを

そしてdrupal_get_query_parameters()機能を使用するための関数をコールバックこれらのメニュー上のポストデータをフェッチします。

function mymodule_abc_view() { 
    // ... 
    $parameters = drupal_get_query_parameters(); 
    print "<pre>"; 
    print_r($parameters); 
    print "</pre>"; 
    } 

それはあなたのための助けとなることがあります。

ありがとう、