2012-04-26 55 views
0

我從字面上剛剛發現了Node.js,我已經做了太多的閱讀,它讓我的頭受傷。我有節點服務器啓動並運行。我在節點服務器上有一個寫入文本文件的.JS文件。我很想看到只有一個變量(名稱)從我的Javascript應用程序傳遞到運行Node.js的服務器,以便日誌文件得到更新。從我讀過的AJAX是做到這一點的最佳方式。有人能讓我用正確的方向去做一個小代碼示例,瞭解如何做到這一點?使用AJAX POST到節點服務器

服務器正在運行的節點

var fs = require('fs'), str = 'some text'; 
fs.open('H://log.txt', 'a', 666, function(e, id) 
{ 
    fs.write(id, str + ',', null, 'utf8', function(){ 
    fs.close(id, function(){ 
    console.log('file is updated'); 
}); 

})上File.js的代碼; });

回答

3

這是我會怎麼做你所提到的:

做出快速的http服務器,看任何連接的請求變量,並拿到了傳入的參數,並編寫的文件。

var http = require('http'); 
http.createServer(function (req, res) { 
    var inputText = req.url.substring(1); 
    processInput (inputText); 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Completed.'); 
}).listen(1337, '127.0.0.1'); 

編輯在這裏:當然,你仍然需要定義什麼是processInput

function processInput (text) 
{ 
    // What you had before 
    var fs = require('fs'); 
    fs.open ('H://log.txt', 'a', 666, function (e, id) 
    { 
     fs.write (id, text + ',', null, 'utf8', function() { 
      fs.close(id, function() { 
       console.log('file is updated'); 
      } 
     } 
    }); 
} 

這樣,當你發送請求到

127.0.0.1:1337/write

它會寫的字「寫」到文件(如果processInput寫輸入)。

另一種處理方法是使用URI中的參數。有關如何執行此操作的更多信息正好可以找到here at the nodejs api

祝你好運!

+0

嗨Kaushik-感謝偉大的職位。你能說說127.0.0.1:1337/write嗎?我不需要以某種方式調用服務器端的.js文件,以便將變量傳遞給它?對不起,我現在正在學習這一點。現在吹我的評論;) – DaBears 2012-04-27 02:35:14

+0

嘿DaBears。當您向節點服務器發出請求時,您可以在'req'對象中獲得有關請求的所有信息。 節點的工作方式是它真的只是一個JavaScript跑步者。但是它的強大之處在於它具有'http','net',以及許多其他軟件包,可以讓您創建高度可擴展的服務器。它非常靈活,但你需要指定很多東西。看看[http請求的製作方式](http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html),你就會明白參數'write'是如何傳入的。同時查看最新的編輯。 – 2012-04-27 17:12:48

+0

嗨Kaushik-這開始對我更有意義。對於http請求,我在[javascript]應用程序中添加了來自[link] http://www.websitetoolbox.com/tool/support/117的javascript代碼,並將url更改爲http:// mynodeserver:8000,並且我獲得了成功當我在客戶端Web瀏覽器中打開我的JavaScript應用程序時彈出。接下來,我將您的第一個代碼和您發佈的修改後的函數添加到.js文件中,並將其保存在節點服務器上。我假設我需要在節點服務器上的cmd提示符下運行該js文件,然後才能通過JavaScript應用程序中的httprequest獲取該文件?我收到Sysntax er – DaBears 2012-04-29 00:21:06

相關問題