从服务器向客户端节点js发送值

时间:2017-05-25 11:38:26

标签: javascript node.js

我正在注册用户,注册成功后我想在客户端提醒。那么,我在服务器端做了什么,在注册后我发送了一个值"注册"然后当它获得该值时,我的客户端会知道该用户已注册但我不知道如何在我的客户端获得该值。

router.post('/registration', function (req, res, next) {
    var stud = {
        username: req.body.username,
        email: req.body.email,
        password: req.body.password,
        admin: 0
    };

    mongo.connect(url, function (err, db) {
        assert.equal(null, err);
        db.collection('user-data').insertOne(stud, function (err, result) {
            assert.equal(null, err);
            console.log('Student inserted');
            db.close();
            res.json('registred');
        })
    })


});

我的客户端代码

$('.MyForm').on('submit', function(event){
    event.preventDefault();


    $.ajax({
      url: '/registration',
      method: 'post',

      success: function(response){

      }
    })


  });   

没有太多因为我不知道下一步该做什么

2 个答案:

答案 0 :(得分:0)

您仍然需要做的就是将回调中的警报放入ajax请求

success: function(response) {
    alert('User registration succeeded!')
}

答案 1 :(得分:0)

由于您正在使用HTTP协议,为什么不使用其内聚的响应代码来指示发生了哪些操作?例如:

200 - 用户已成功创建 400 - 输入数据格式错误 409 - 已经采用了唯一用户的模型字段之一

等等。在响应对象上使用方法'status'来设置适当的返回码。我假设您正在尝试使用REST规则创建服务器,因此您的端点应该在POST请求时返回新创建的实体。

mongo.connect(url, function (err, db) {
        assert.equal(null, err);
        db.collection('user-data').insertOne(stud, function (err, result) {
            if(err) {
              /* At this point, you may decide to check what error has been returned to decide which code will be returned*/
              return res.status(400).json(err);
            }
            console.log('Student inserted');
            db.close();
            res.status(200).json(result);
        })
    })

在客户端,在您重构它以使用jQuery(因为版本1.5.1)'Promise API'

之后,代码可能会更加令人愉悦。
$.ajax({
  url: 'http://localhost:8000',
  method: 'POST'
})
  .done(function( data ) {

  })
  .fail(function (reason) {

  })