我是表达新手,并试图实现基本的登录功能,但我对传递数据有点困惑。我有几个地方似乎让我感到困惑。
我将输入值存储在发送到/login 的
$scope.formdata
对象中。有没有办法可以在我的 Express 后端访问这个对象。我不太确定为什么 req.body 在这段代码中未定义。
app.get('/success', function(req, res){ //console.log(req.body); res.json(req.user);
});
这里是 Express 后端和 Angular 代码,如下所示:
module.exports = function(app, passport){
//index page - main login page
app.get('/login', function(req, res){
res.render('index.ejs');
});
app.post('/login', passport.authenticate('local-login', {
successRedirect: '/success',
failureRedirect: '/failure',
}));
app.get('/success', function(req, res){
//console.log(req.body);
res.json(req.user);
});
app.get('/failure', function(req, res){
res.send('Failed');
});
};
$scope.login = function(){
$http.post('/login', $scope.formdata)
.success(function (data){
console.log(data);
})
.error(function (data){
console.log(data);
});
}
成功登录后,我只想重定向到新页面并显示“你好,用户名”
最佳答案
您应该使用主体解析中间件,否则您的 req.body
对象将是未定义
。
示例:
var app = require('express')();
var bodyParser = require('body-parser');
var multer = require('multer');
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
app.use(multer()); // for parsing multipart/form-data
app.post('/', function (req, res) {
console.log(req.body);
res.json(req.body);
})
关于javascript - 表达req.body为空。这是最好的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32293898/