AngularJS将数据发布到nodeJs / Sequelize

时间:2017-08-31 09:36:51

标签: javascript angularjs node.js express sequelize.js

我正在创建一个包含Nodejs / Sequelize和AngularJs的电子商务网站。

我实际上得到了这个启动器AngularJS starter

在我的项目中,我有2个文件夹:

  • 客户端(包含AngularJS入门文件夹)

Client folder

  • 服务器(包含我的server.js

Server folder

我想注册一个用户,我得到了我的" registeredView.html"表格形式:

<form ng-submit="submit()">
            <input type="text" name=firstname ng-model="user.firstname" placeholder="firstname" required=" ">
            <input type="text" name="lastname" ng-model="user.lastname" placeholder="lastname" required=" ">
            <input type="email" name="email" ng-model="user.email" placeholder="Email Address" required=" ">
            <input type="password" name="password" ng-model="user.password" placeholder="Password" required=" ">
            <input type="password" name="confirm_password" ng-model="user.confirm_password" placeholder="Password Confirmation" required=" ">
            <input type="submit" value="Register">
        </form>

现在,我可以在我的&#34; RegisteredController&#34;中获取这些数据。感谢$ scope.user,但我不知道如何将这些数据发送到我的服务器。

我正在使用快递模块,所以我尝试使用$ http.post这样:

    .controller('RegisteredController', ['$scope', function ($scope, $http) {
    $scope.submit = function () {
        $http.post('/registered', $scope.user)
        then(function (response) {
            console.log("posted")
        }).catch(function (response) {
            console.error(response)
        })
    }
}]);

在我的&#34; server.js&#34;我试着这样写这个帖子:

app.get('/registered', function (req, res) {
console.log(req.body)
res.end();

});

但它不起作用..

我错了什么?一些忠告 ? 我需要你帮助的人:)

1 个答案:

答案 0 :(得分:1)

正如评论中所讨论的,有3个直接明显的问题:

  • 您的服务器需要get而不是post,将app.get('/registered'...)更改为app.post('/registered'...)

  • 您在此处错过了一个点:$http.post('/registered', $scope.user)then(function (response) {,在结束)then之间。

  • 您需要标记要注入的$http,与$scope一样 - 将['$scope', function ($scope, $http)更改为['$scope', '$http', function ($scope, $http)

为了能够对您发布的数据执行某些操作,您应该查看body parser。在要求之后,您可以执行以下操作 - app.use(bodyParser.json())。然后你应该有权访问req.body,其中应包含被解析为javascript对象的用户。