我想調用node.js腳本,就像我用php做的那樣,簡單地使用它們的url。從html頁面調用nodejs腳本
我主要是一個js程序員,所以對我來說完全消滅php並將節點用於服務器端腳本將會很棒。
但大多數教程中,我看到了至今參與創建服務器,等...
我只是想調用的腳本以舊的方式,像www.mysite.com/login.js代替www.mysite.com/login.php
而且一旦被調用腳本應該返回或者頁面進行渲染或者簡單地用json或者其他文本進行ajax調用。
可能嗎?
我想調用node.js腳本,就像我用php做的那樣,簡單地使用它們的url。從html頁面調用nodejs腳本
我主要是一個js程序員,所以對我來說完全消滅php並將節點用於服務器端腳本將會很棒。
但大多數教程中,我看到了至今參與創建服務器,等...
我只是想調用的腳本以舊的方式,像www.mysite.com/login.js代替www.mysite.com/login.php
而且一旦被調用腳本應該返回或者頁面進行渲染或者簡單地用json或者其他文本進行ajax調用。
可能嗎?
還有另一種可能性,類似於上面提到的CGI方法,但使用一個模塊(https://github.com/ samcday/node-fastcgi-application)在Node.js中支持FastCGI,這將允許Apache與它通信。
它實際上融合了這兩種風格,所以Node程序由Apache自動啓動,但只要有處理請求就會停留。您只需設置一個規則,將您想要的頁面重定向到dispatch.njs腳本,該腳本已作爲Node腳本添加到.htaccess中的AddType中,該腳本啓動並處理stdin上的請求並將結果發送到stdout。但是你仍然需要express提供的路由,因爲它只查看HTTP_REQUEST_URI來確定你想要的頁面。
另一種選擇是設置節點監聽某個端口和代理服務器對Apache的請求(如果它們匹配某個簽名(如以.njs結尾))。
但大多數教程中,我看到了至今參與創建服務器,等...
我只是想叫老方式的腳本,像www.mysite.com/login.js的而不是www.mysite.com/login.php
這就是node.js的工作原理。你創建一個服務器。使用PHP,教程的第一步是安裝並設置apache(創建服務器)。
在PHP方面的問題的equivelant將
我可以運行PHP腳本沒有安裝Apache/nginx的/ web服務器等
,你不能(我認爲最近或將來版本包括一個Web服務器烘烤,就像Node.js的!)
你需要安裝的node.js,你需要告訴節點運行一個Web服務器
但是,您可以使用expressjs進行更簡化和熟悉的設置。然後,您可以在命令行上撥打express
將您的服務器支架卸下。
你仍然需要安裝的Node.js(和NPM)
的Node.js和PHP是兩回事。
Node.js是一個「事件驅動的I/O服務器端JavaScript環境」。當它運行時,Javascript不會作爲腳本語言運行,它可以像Ruby或Python一樣進行處理。你啓動一個服務器,並運行代碼。
但是,PHP作爲Web服務器上的腳本語言運行,因爲Web服務器上安裝了PHP處理器模塊。因此,您可以通過.php擴展名直接運行PHP腳本,因爲Apache服務器被配置爲將.php文件解釋爲腳本。
換句話說,如果沒有大量的hacky技巧,和node.js,你想要做什麼是不可能的。但是,如果您只想使用PHP的而不是,那麼我會檢查JS-CGI,它允許您將Javascript用作CGI擴展。
就是這樣。我看到了js-cgi,但它看起來很不成熟。節點的好處是,有大量的文件系統模塊,數據庫處理等。 有沒有任何預製項目允許我使用節點作爲簡單的服務器端腳本庫? – Bakaburg
您可以使用CGI。事情是這樣的:
#!/usr/local/bin/node
var sys=require("sys");
sys.puts("Content-type: text/html\n");
sys.puts("Hello World!<br/>\n");
var argstr="";
for(var i in process.env){
argstr+=i+": " + process.env[i] + "<br/>\n";
}
sys.puts("args: "+ argstr +"<br/>\n");
就如Perl/Python的/../ ..
node.js服務器很容易設置 - 它提供了您需要的功能。只要做一個http服務器的教程,這將需要你半小時,你會明白爲什麼它是這樣設置的。 –