【发布时间】:2022-01-01 09:45:33
【问题描述】:
我正在制作一个人们可以评论电影的网络应用程序,并且我正在努力让用户无法删除其他用户的评论。
这是我删除电影的 AngularJS 函数:
$scope.del_movie = function(movie) {
$http( {
method: 'DELETE',
url: '/movie/:title',
params: {'title': movie.title},
data: {'username': movie.username}
}).then(function successCallback(response) {
console.log(response);
return getData();
}, function errorCallback(response) {
console.log('Error: ' + response);
});
};
我已经 console.logged the movie.username 并且收到了正确的用户名。
但是,当这个请求被路由到我的快速删除函数时,req.body.username 似乎是未定义的。这是那条路线:
app.delete("/movie/:title", requiresAuth(), function(req, res) {
paramsUsernameString = req.body.username;
oidcEmailString = JSON.stringify(req.oidc.user.email);
console.log("movie " + req.params.title);
if(paramsUsernameString != oidcEmailString){
console.log("req.params.username " + paramsUsernameString + " req.oidc.user.username " + oidcEmailString);
console.log("can't delete someone else's review!");
}
else{
Movie.findOneAndRemove(req.query, function(err, result) {
if ( err ) throw err;
res.json( {
message: "req.params.username " + paramsUsernameString + " req.oidc.user.username " + oidcEmailString,
movie: result
});
});
}
});
我四处搜索,这里关于 SO 的大多数问题都通过要求 body-parser 来解决,但我已经这样做了:
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
我的 POST 请求也使用了 body-parser,而且那个很好用。
感谢任何帮助,如果需要,很乐意提供更多信息。谢谢!
【问题讨论】:
标签: node.js angularjs express mean-stack body-parser