2015-09-21 24 views
0

我已經嘗試過與鐵路路由器的服務器路由,但不起作用。然後我發現了WebApp,看起來它應該處理這個問題。如何使用Meteor的WebApp訪問HTTP POST body(form-data)?還是其他什麼?

但是,當我檢查REQ對象:

WebApp.connectHandlers.use("/api/add", function(req, res, next) { 
    console.log(req); 
    res.writeHead(200); 
    res.end("Hello world from: " + Meteor.release); 
}); 

我沒有看到我的任何POST表單數據的。沒有主體屬性,我沒有看到數據本身在任何其他屬性下的任何地方。

我該如何訪問這些數據?我瘋了試圖找出我認爲會相對簡單的東西...

回答

0

您將需要用戶光纖的例子工作,或者我通常使用選擇器,你可以添加它meteor add meteorhacks:picker它的包裝在webApphttps://atmospherejs.com/meteorhacks/picker

和你的榜樣應該以這種方式工作:

Picker.route('/api/add', function(params, req, res, next) { 
    console.log(req); 
    res.writeHead(200); 
    res.end("Hello world from: " + Meteor.release); 
}); 

這裏是一個真棒文章向您展示不同的選項(webApp用纖維以及)http://meteorpedia.com/read/REST_API

+0

謝謝。我無法讓Picker工作,但是我最終與Restivus一起工作,這不僅有效,而且給了我更多的功能。 – m52go

+0

@ m52go我也是restivus的忠實粉絲,真的很棒:) –

3

是的,我有同樣的問題。通過連接,帖子主體不會自動位於請求對象中。您可以使用像這樣的中間件https://stackoverflow.com/a/24122700/5203563或像這樣得到它:

WebApp.connectHandlers.use("/api/add", function(req, res, next) { 

    var body = ""; 
    req.on('data', Meteor.bindEnvironment(function (data) { 
    body += data; 
    })); 

    req.on('end', Meteor.bindEnvironment(function() { 
    console.log(body); 
    res.writeHead(200); 
    res.end("Hello world from: " + Meteor.release); 
    })); 
}); 
相關問題