2014-09-10 32 views
1

我試圖運行一個簡單的快速Web服務器使用吞噬任務。我只想要一個顯示索引文件的靜態服務器。我可以通過運行一個節點模塊來輕鬆執行此操作,但是我想再一次執行此操作。我計劃擴展這個以允許設置LiveReload服務器。簡單的快速服務器和吞吐錯誤

我遵循了很多關於設置LiveReload的教程,但它們都失敗了。我假設它與編寫文章時使用的版本有關。但我希望也許有人對如何處理這個問題有了一個想法。

我創建了一個非常小的GitHub庫,可以讓你玩的什麼,我試圖完成:fixit

Gulpfile.js:

var gulp = require('gulp'); 

var EXPRESS_PORT = 4000; 
var EXPRESS_ROOT = __dirname; 

gulp.task('express', function() { 
    var express = require('express'); 
    var app = express(); 
    app.use(express.static(EXPRESS_ROOT)); 
    app.listen(EXPRESS_PORT); 
}); 

*有在一個index.html相同的目錄Gulpfile

這裏是錯誤:

/var/www/clients/client1/web14/sendus-admin/node_modules/express/node_modules/etag/index.js:55 
    throw new TypeError('argument entity must be string or Buffer') 
     ^
TypeError: argument entity must be string or Buffer 
    at etag (/var/www/clients/client1/web14/sendus-admin/node_modules/express/node_modules/etag/index.js:55:11) 
    at SendStream.setHeader (/var/www/clients/client1/web14/sendus-admin/node_modules/express/node_modules/send/index.js:724:15) 
    at SendStream.send (/var/www/clients/client1/web14/sendus-admin/node_modules/express/node_modules/send/index.js:500:8) 
    at onstat (/var/www/clients/client1/web14/sendus-admin/node_modules/express/node_modules/send/index.js:585:10) 
    at Object.oncomplete (fs.js:97:15) 

回答

3

我有同樣的問題,一個星期沒有Gulp和BrowserSync工作(組合給我同樣的錯誤),我訴諸更重的選項,如重新安裝Node.js。最後,對我來說有效的是使用nvm來降級到Node.js版本10(我以前使用過11版本)。

nvm install 0.10 
nvm use 0.10 

然後,只需更新和使用咕嘟咕嘟:

npm update 
gulp 

當然希望幫助你。

+2

這工作對我來說,當我在Mac上的「離子發球」的問題 – 2014-09-21 19:39:45

0

自從一週以來,我的Express.static出現了同樣的問題。禁用ETAG Express.static爲我解決這個問題,直到有一個更好的修復:

app.use(express.static(path.join(__dirname, '/static'), {etag: false}));