2012-05-14 57 views
1

我試圖使用調度,但是當我在broswer做一個測試(http://127.0.0.1/user)我得到以下信息節點JS調度無法得到錯誤

不能得到/用戶/

我究竟做錯了什麼?

127.0.0.1 - - [Mon,14 May 2012 17:40:13 GMT]「GET/user/HTTP/1.0」404 - 「 - 」「Mozilla/5.0(Windows NT 6.1; WOW64; rv :12.0)的Gecko/20100101火狐/ 12.0"

http://www.something.com/api/ping - >工作正常

我的nginx的配置文件有這個條目也。

location /user/ { 
     proxy_pass http://www.something.com:8181; 
} 

任何有任何建議如何讓調度員工作?

var dispatch = require('connect') 

function init() { 
    var port = process.env.VCAP_APP_PORT || process.env.PORT || parseInt(process.argv[2], 10) 
    var staticFolder = __dirname + '/../site/public' 

    console.log('port='+port+' static='+staticFolder) 

    var server = connect.createServer(
    connect.logger(), 
    connect.bodyParser(), 
    connect.cookieParser(), 
    connect.query(), 
    connect.session({secret: config.secret}), 

    dispatch({ 
      '/user': { 
        GET: api.get_user, 
        '/socialmsg/:when': { 
          POST: api.social_msg 
        } 
      } 
    }), 

function(req,res,next){ 
    if(0 === req.url.indexOf('/api/ping')) { 
    console.log(req.url+': '+JSON.stringify(req.query)) 
    res.writeHead(200) 
    res.end(JSON.stringify({ok:true,time:new Date()})) 
    } 
    else next(); 
}, 

connect.static(staticFolder) 
) 

server.listen(port) 
} 
+0

你的代碼有很多問題,除非有更多的問題。例如,你已經設置了dispatch = require('connect'),但是隨後使用變量「connect」而不是「dispatch」。 –

回答

0

https://github.com/senchalabs/connect,我會顯著重構代碼,使其更具可讀性和更明顯,以什麼地方出了錯。總之,我不相信靜態目錄似乎根據需要配置。根據Connect模塊(ExpressJS和http/https模塊具有它),我沒有找到createServer()方法,尤其是具有8個參數的方法。

這就是說,我會堅持的文件的約定如下:

var connect = require('connect'), 
    http = require('http'); 

var staticFolder = __dirname + '/../sites/public'; 

var server = http.createServer(
    connect 
     .use(connect.static(staticFolder)) 
     .use(connect.logger) 
     .use(connect.bodyParser) 
     // etc for each of the 'connect.' middleware you are using above 
     .use(function (req, res) { 
      // Request handling here 
     }); 
); 

server.listen(8181); 

在空函數(REQ,RES){}你會希望把所有你對API /平爲好東西作爲/用戶請求的等價物。

在你的問題中,你提供了'connect.static()'作爲createServer()的參數(即connect.createServer(connect.static)),而不是connect.use()的參數,中間件處理功能在模塊中。