试图从客户端向服务器发送对象(AngularJS $ http.post)

时间:2016-11-14 06:29:22

标签: javascript angularjs node.js express

我尝试存储用户在我的服务器中点击的对象,以便在页面更改时,该对象的所有信息都可以完整显示在个人资料页面中。

我不熟悉Angular $ http但是我试图写一个POST到服务器的调用,不幸的是,当我扫描VScode中的req对象时,我可以'找到我发送的对象的位置,所以我可以将它发送到我的函数。

控制器功能:

$scope.storeProfile = function(child){
    $http.post('/storeTempProfile', child)
    .then(function(response) {
        window.location.href = 'DemoPage.html';
    });
}

server.js:

app.post('/storeTempProfile', function (req, res) {
  profileStorage.storeProfile(req); 
}); 

我的app.post看起来不错吗?我需要使用点运算符来访问我的对象需要req的哪些属性?我似乎无法在req的任何地方找到对象数据,这让我觉得我在编写app.post时出现了问题

1 个答案:

答案 0 :(得分:1)

看起来你正在使用快递。因此,在这种情况下,您希望访问req.body上的对象,但这需要您使用body-parser。他们主页上的例子:

var express = require('express')
var bodyParser = require('body-parser')

var app = express()

// create application/json parser
var jsonParser = bodyParser.json()

// POST /api/users gets JSON bodies
app.post('/api/users', jsonParser, function (req, res) {
    if (!req.body) return res.sendStatus(400)
    // create user in req.body
})

在这个例子中你会注意到它们将json解析器传递给路由本身。仅当您希望为不同的路由使用不同的解析器时,才需要这样做。通常您只想将其设置为所有路线,您可以使用app.use(bodyParser.json())