目標:我是Node.js和Express.js框架的新手。目前,我正在使用IONIC框架編寫一個小應用程序,我試圖將FirstName,LastName等用戶基本信息作爲第一步傳遞給node.js服務器。然後,一旦我讀取數據,我打算將數據保存在數據庫中。無法從Express.js中的req.body中讀取帖子參數4.13.x
問題:目前,當我從我的應用程序的節點JS服務器傳遞信息(在這種情況下,只是名字用於測試目的)通過POST請求,當我嘗試訪問使用req.body.FirstName
的名字,服務器返回"undefined"
。但是,當我使用console.log(req.body)
它返回的值爲eg., { '{"FirstName":"test"}': '' }.
我不知道我錯過了哪裏。我想我通過谷歌提到了很多鏈接,似乎沒有什麼可以解決的。這可能是一件簡單的事情,但它困擾我很多,我正在浪費時間來找到解決方案。
配置: Express.js - 4.13.3
我基於對這一問題的相關鏈接嘗試了不同的組合。似乎沒有任何工作。任何指導或建議將會非常有幫助,因爲我受到了打擊。
serverapp.js
從Controllers.jsvar express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods', 'GET,POST');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.post('/', function(req, res) {
console.log("Hi from server", req.body);
console.log("Hi this is key value", req.body.FirstName); // this throws error as undefined
});
var server = app.listen(8100, function() {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
代碼片段 - POST請求通過這個發送。
var url = 'http://localhost:8100'
var request = $http.post(url,
{'FirstName': $scope.Model.FName}, {headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}});
Rego.html文件
<form name="tab-Registration.form">
<div class="list" align="left">
<label class="all_page_bgColor" align="left">
<input type="text" name="FName" placeholder="First Name" ng-model="Model.FName" class="all_page_bgColor" align="left">
</label>
<label class="all_page_bgColor" align="left">
<input type="text" name="LName" placeholder="Last Name" ng-model="Model.LName" class="all_page_bgColor" align="left">
</label>
<label class="all_page_bgColor" align="left"> <!-- class="item item-input" -->
<input type="text" name="Email" placeholder="Email" ng-model="Model.Email" class="all_page_bgColor" align="left">
</label>
<label class="all_page_bgColor" align="left">
<input type="text" name="PhoneNo" placeholder="Phone" ng-model="Model.PhoneNo" class="all_page_bgColor" align="left">
</label>
</div>
<div align = "center">
<button class="button button-assertive" ng-click="submit()">Submit</button>
</div>
</form>
我試圖使用下面的var keys = Object.keys(req.body); console.log(鍵[0])返回{「FirstName」:「Baranidharan」}但無法讀取FirstName的值。如果有人可以建議,這對我很有幫助 – Brad
@Brad關鍵必須是名字不是{「FirstName」:「Baranidharan」} – Ali
感謝您的更新。我嘗試使用鍵[0] .FirstName,但它仍然返回undefined。不確定如何解決這個問題。如果我沒有從req.body中獲得任何價值,那麼這是一個不同的問題。我在這裏得到了價值,無法讀取它。真的被打了一段時間,無法繼續。不知道是否因爲我是新人而錯過了一件小事。如果你可以或任何人都可以幫助,這將是非常有用的.. – Brad