2017-07-11 15 views
-1

我使用節點6.9.4並且表達式4,當nodejs _http_common.js創建IncomingMessage(行號爲60)時,parser.incoming .query將是一個函數(通常是未定義的),所以表示的可以解析請求對象的查詢參數nodejs http_incomingmessage的查詢屬性不爲空,所以表達不能解析查詢參數

表達\ lib中\中間件\ query.js(線38):

return function query(req, res, next){ 
    if (!req.query) { 
     var val = parseUrl(req).query; 
     req.query = queryparse(val, opts); 
    } 

    next(); 
    }; 

parser.incoming。查詢:

function getQuery() { … } 
length:0 
name:"getQuery" 
prototype:getQuery {constructor: function getQuery() { … }} 
__proto__:function() {} 
+0

「查詢」存在parser.incoming的原型,但我在_stream_readable.js和_http_incoming.js中找不到任何'query'關鍵字 – Ricy

回答

0

解決,這是因爲restify 5.0,它會覆蓋請求對象,使req.query成爲一個函數,所以表達不能解析查詢參數

+0

如果您還使用了Restify,爲什麼還要使用Express? – robertklep

+0

@robertklep我不需要重新定義,但我需要bpmn,它需要'restify' – Ricy

+0

如果堅持使用Restify而不是使用Express,會不會更容易?這兩個框架非常相似,並且運行在一起可能會導致更多問題。 – robertklep