2015-05-19 136 views
1

我對node.js非常陌生,我想我理解它的基本功能,但我覺得我沒有看到對fs.write和buffers功能至關重要的東西。將變量寫入緩衝區

我想通過socket.io發送一個用戶定義的變量並將其寫入一個html文件。我有一個主站點有按鈕,點擊後它將信息發送到變量中的套接字。

我弄不明白的是如何將變量插入到html文件中。

我能救我輸入的字符串,到一個文件: (EG)var writeBuffer = new Buffer ('13');

但不是變量,我把在: (EG)var writeBuffer = new Buffer ($(newval));

我甚至嘗試了不同的編碼方式,我認爲我錯過了一些東西。

Server.js

var newval = "User String"; 
 
var fd = fsC.open(fileName, 'rs+', function (error, fd) { 
 
    if (error) { throw error } 
 
    var writeBuffer = new Buffer($(newval)); 
 
    var bufferLength = writeBuffer.length; 
 
    fsC.write(fd, writeBuffer, 0, bufferLength, 937, 
 
    function (error, written) { 
 
     if (error) { throw error } 
 
     fsC.close(fd, function() { 
 
     console.log('File Closed'); 
 
     }); 
 
    } 
 
); 
 
});

+0

沒有必要在'$()'中包裝'newval'。 'new Buffer(newval)'應該是所有需要的。 –

+0

我也試過,用$(newval)它寫垃圾字符 並且用(newval)寫一個空格。 –

+0

您是否試圖將任意字符串插入HTML文件的第937個字符,然後將該HTML文件返回? –

回答

0

如果您使用的是版本4.0.0 jsdom的或更高版本,它不會與Node.js的工作由於每jsdom github readme

注意,作爲我們的4.0.0版本中,jsdom不再與 Node.js的™的工作,而是需要io.js.如果您使用Node.js™,仍然歡迎您在3.x系列中安裝 版本。

+0

由於確切的原因,我使用的是版本3 –