2011-12-02 59 views
0

沒有任何一個有充分的Rails的項目,我碰巧試圖啞代碼是否有任何人知道如何在Rails項目配置NACK /節點

VAR HTTP =需要(「HTTP」)配置nack; var nack = require('nack');

var app = nack.createProcess(「/ home/viren/myapp/config.ru」); (函數(req,res){app.proxy(req,res); })。listen(8124,「127.0.0.1」);

但報道我下面的錯誤

events.js:94 
    throw new Error('addListener only takes instances of Function'); 
     ^
Error: addListener only takes instances of Function 
    at BufferedRequest.<anonymous> (events.js:94:11) 
    at Process.<anonymous> (/home/viren/node_modules/nack/lib/process.js:257:21) 
    at Process.proxy (/home/viren/node_modules/nack/lib/process.js:3:63) 
    at Server.<anonymous> (/home/viren/simple.proxy.js:7:7) 
    at Server.emit (events.js:67:17) 
    at HTTPParser.onIncoming (http.js:1124:12) 
    at HTTPParser.onHeadersComplete (http.js:108:31) 
    at Socket.ondata (http.js:1019:22) 
    at Socket._onReadable (net.js:683:27) 
    at IOWatcher.onReadable [as callback] (net.js:177:10) 

這裏是我的自定義機架文件

require "config/environment" 

use Rails::Rack::LogTailer 
use ActionDispatch::Static 
run ActionController::Dispatcher.new 

回答

0

根據在node_modules/NACK/lib中/ process.js來源:257 nack期待app.proxy擁有app.proxy(req,res,next)的簽名,這是連接應用程序的常見習慣用法。在連接中,調用next(「some value」)是一個慣例,因爲大多數應用程序在中間件鏈的底部都有一個捕獲所有錯誤處理程序。由於您不使用連接,只需創建您自己的錯誤處理程序。

我也創建了拉請求,所以希望將來使用next將是可選的。 https://github.com/josh/nack/pull/25

var http = require('http'); var nack = require('nack'); 

var app = nack.createProcess("/home/viren/myapp/config.ru"); 

http.createServer(function (req, res) { app.proxy(req, res, logNackError); }).listen(8124, "127.0.0.1"); 

function logNackError(err) { 
    console.log('nack error:', err); 
} 
+0

當然我會試試這個。如果你能夠實際記錄它,這將會非常有幫助 – Viren

相關問題