0
嘗試從MEAN應用程序中的註冊表單發佈,我可以使用Postman成功發佈使用x-www-form-urlencoded,但是當應用程序中的請求主體爲空時console.log它。 寄存器形式(部分):Node.js request.body爲空
<form class="form-horizontal" ng-submit="register.saveUser()">
<div class="form-group">
<label class="col-sm-2 control-label">Name</label>
<div class="col-sm-6">
<input type="text" class="form-control" ng-model="user.userData.name">
api.js(部分)
var bodyParser = require('body-parser'); // get body-parser
var User = require('../models/user');
var jwt = require('jsonwebtoken');
var config = require('../../config');
var superSecret = config.secret;
module.exports = function(app, express) {
var apiRouter = express.Router();
apiRouter.post('/register', function(req, res) {
var user = new User();
user.name = req.body.name;
user.username = req.body.username;
user.password = req.body.password;
console.log(req.body); //EMPTY
我有app.use bodyParser在server.js該呼叫之前api.js
服務器.js(部分)
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var apiRoutes = require('./app/routes/api')(app, express);
app.use('/api', apiRoutes);
我做錯了什麼,但看不到什麼。
增加對@mscdex: register.saveUser()是指userRegisterController saveUser()函數:
.controller('userRegisterController', function(User) {
var vm = this;
// function to create a user
vm.saveUser = function() {
vm.processing = true;
vm.message = '';
// use the register function in the userService
User.register(vm.userData)
.success(function(data) {
vm.processing = false;
vm.userData = {};
vm.message = data.message;
});
};
它使用userService寄存器功能:
// register a user
userFactory.register = function(userData) {
return $http.post('/api/register/', userData);
};
此調用的API文件,我已在上面發佈。
順便說一下,當我使用Postman時,console.dir(req.headers ['content-type'])顯示'application/x-www-form-urlencoded'並且成功。
你能分享你的角色部分嗎? – Subham
register.saveUser()是做什麼的? –
您可能還想在路由處理程序中仔細檢查'console.dir(req.headers ['content-type'])'的值。 – mscdex