如何将Node.js中的成功或失败代码返回给Angularjs

时间:2015-01-08 06:20:05

标签: angularjs node.js

我正在使用Angularjs构建我的网站,我正在使用Node js和express进行测试。所以,我能够发送一个json项目,其中包含联系页面表单中的信息。但是,我不知道如何将Node.js中的成功或失败代码返回到Angularjs以重定向到感谢页面。此外,我需要知道如何将信息发送到我的电子邮件并将其保存到数据库以及如何为表单添加令牌。我知道我正在使用MEAN堆栈。我学得更好看。

这是我的Node js:

var express = require('express');
var app = express();
var formidable = require('formidable');

app.use(express.static(__dirname + '/public'));    // navigate to where the app reside

app.get('/', function (request, response) {
    response.redirect('Index.html');
});

app.post('/Contact', function (request, response) {
    var frm = new formidable.IncomingForm();
    frm.parse(request, function(err, formData){
    var Name = formData.Name,
        Email= formData.Email,
        Message = formData.Message;
        response.writeHead(200, { "Content-Type": "application/json" });
        response.end("{'status:' 200}");
    });
});
var port = 8080;
app.listen(port);
console.log('Listening on port:  ' + port);

这是我的Angularjs:

$scope.submit = function () {
        console.log('Im in the controller');
        console.log($scope.formData);       
        $http({
            method  : 'POST',
            url     : '/Contact',
            data    : $.param($scope.formData), 
            headers : { 'Content-Type': 'application/json' } 
        }).success(function(result, status, headers, config) {
                console.log(result);
            if(result.status == "???"){
                redirectTo: '/Thnkyu';
            }
        }).error(function(result, status, headers, config) {
        // called asynchronously if an error occurs
        // or server returns response with an error status.
            console.log(result);
        });
    }

1 个答案:

答案 0 :(得分:1)

当我提交表格时;控制台显示:TypeError:无法读取未定义的属性'protocol'在显示之前:ERR_CONNECTION_REFUSED因为我在设置标题和数据之前有了url部分。

问题是我使用angularJs $ http依赖,如上所示;但是,它没有用。所以,我像这样使用$ http依赖:

$scope.submit = function () {
        console.log($scope.formData);
        $http.post("/contact", $scope.formData)
        .success(function(reponse){
            if(reponse.status == 200)
            console.log('im in')
            $location.path('/thnkyu');
        });

并且来自服务器的响应是这样的:

...
if(!eor){
        console.log(eor);
        response.json({status: 200});
    }