2016-04-26 50 views
0

我想在Azure移動應用程序Node.js後端服務器中使用easy api。 但努力後,我無法獲得請求的內容。Azure移動應用程序node.js後端 - 無法獲取請求的內容

任何人都可以告訴我我失去了什麼可能的東西嗎?

這是我的API(myApi.js):

module.exports = { 
 
    "post": function (req, res, next) { 
 
     for (var k in req) { 
 
      console.log("%s: %j", k, req.k); 
 
     } 
 
     res.status(200).send('post'); 
 
    } 
 
}

這是我的app.js:

var express = require('express'), 
 
    azureMobileApps = require('azure-mobile-apps'); 
 

 
var app = express(); 
 

 
var mobile = azureMobileApps({ 
 
    // Explicitly enable the Azure Mobile Apps home page 
 
    homePage: true 
 
}); 
 

 
mobile.tables.import('./tables'); 
 

 
mobile.api.import('./api'); 
 

 
mobile.tables.initialize() 
 
    .then(function() { 
 
     app.use(mobile); // Register the Azure Mobile Apps middleware 
 
     app.listen(process.env.PORT || 3000); // Listen for requests 
 
    });

我用郵差發送請求。 郵差
enter image description here

這是我的控制檯日誌,你可以看到,請求一切是不確定的。 PARAMS:未定義 查詢:未定義 頭:未定義 網址:未定義 的StatusCode:未定義 體:未定義 ...

+0

刪除'then'後的'function'和 再試一次。就像這樣:。然後((){ app.use(mobile); app.listen(process.env.PORT || 3000); }); –

回答

2

您需要在移動應用程序服務器中安裝body-parser模塊,在移動應用程序入口app.js中配置身體分析器中間件。然後,您可以使用req.body獲取帖子正文內容。

你可以嘗試以下步驟:

  1. 登錄捻控制檯網站或移動應用服務器的Visual Studio的在線編輯器修改腳本並運行npm命令。在您的根目錄下添加body解析器模塊,如"body-parser": "^1.13.1"dependencies部分中的package.json文件。運行npm update來安裝依賴關係。
  2. 添加語句中app.js

    var bodyParser = require('body-parser'); 
    app.use(bodyParser.json({ limit: '50mb' })); 
    app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));` 
    
  3. 嘗試的代碼片段在你方便的API:

    module.exports = { 
        "post":function(req,res,next){ 
         console.log(req.body) 
         res.send(req.body) 
        } 
    }; 
    
  4. 在郵差,使用x-www-form-urlencoded來發表您的數據: enter image description here

+0

嗨GaryLiu 感謝您的回答,這真的解決了我的問題。 你確實節省了我的時間。 – Aaron

+0

這對我有用。我認爲我的錯誤是我認爲僅僅是因爲我看到body-parser坐在節點模塊中,它是正確的版本,它會起作用。我認爲將它添加到package.json並運行npm install(用於本地安裝)就可以實現。 –

0

嘗試console.log("%s: %j", k, req[k]);代替。

原因是變量k是一個字符串。因此,要通過密鑰作爲字符串訪問成員,您必須使用「數組符號」

+0

嗨JasonWihardja, 感謝您的回答。 我嘗試了這個之後,我可以看到一些請求的價值。 但是請求[「params」],請求[「body」]等內容仍然沒有任何內容。 如何獲取郵遞員發送的請求內容?謝謝。 – Aaron

相關問題