طلب البيانات في Node.js من AngularJS بدون bodyParser
سؤال
أحتاج في تطبيقي إلى استخدام المحلل اللغوي لطلب المعلمات (Node.js AngularJS استنادًا إلى الزاوي اكسبريس بلوق).على سبيل المثال (وحدة تحكم AngularJS):
$scope.changeComment = (comment) ->
$http.put('/api/post/' + $routeParams.id + '/editComment/' + comment._id, $scope.comment).success (data) ->
$scope.post = data.post
لذلك وفقًا لمستندات AngularJS $http.post('/someUrl', data).success(successCallback);
لكنني لا أعرف كيفية العثور على هذه البيانات في Node.js Express.يمكنني فقط استخدام bodyParser، الذي يقوم بتحليل البيانات في النموذج فقط.
app.put '/api/post/:id/editComment/:cid' = (req, res) ->
id = req.params.id;
cid = req.params.cid;
console.log req
Post.findById id, (err, post) ->
unless err
comment = post.comments.id(cid)
console.log req.body
comment.text = req.body.text
post.save (err1) ->
فكيف يمكنني نقل البيانات والتقاطها؟
التطبيق:
app.configure "development", ->
app.use express.bodyParser()
app.use express.methodOverride()
app.use express.static(__dirname + '/public')
app.use express.errorHandler(
dumpExceptions: true
showStack: true
)
وعرض الملف https://Gist.github.com/3189377
المحلول
خطأ في بناء الجملة $scope.comment
يجب أن يكون عادلا comment
:
$scope.changeComment = (comment) ->
$http.put('/api/post/' + $routeParams.id + '/editComment/' + comment._id, comment).success (data) ->
$scope.post = data.post
لا تنتمي إلى StackOverflow