Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将值从服务器发送到客户端节点js_Javascript_Node.js - Fatal编程技术网

Javascript 将值从服务器发送到客户端节点js

Javascript 将值从服务器发送到客户端节点js,javascript,node.js,Javascript,Node.js,我正在注册一个用户,成功注册后,我想在客户端提醒一些事情。所以,我在服务器端所做的,在注册之后,我发送一个值“registered”,然后当它得到该值时,我的客户端会知道用户已注册,但我不知道如何在客户端获得该值 router.post('/registration', function (req, res, next) { var stud = { username: req.body.username, email: req.body.email,

我正在注册一个用户,成功注册后,我想在客户端提醒一些事情。所以,我在服务器端所做的,在注册之后,我发送一个值“registered”,然后当它得到该值时,我的客户端会知道用户已注册,但我不知道如何在客户端获得该值

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){

      }
    })


  });   

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

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

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

既然您使用的是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) {

  })

您是如何在客户端提出请求的?(jquery,angular,other?)你能发布你的客户端代码吗?我正在使用jquery获取值发布你的jquery代码,然后可能想读一点,以便更好地理解你面临的问题:我认为这是一个好主意,但我没有意识到。我在这些.done和.fail函数上编写了警报,提交后,我在另一个页面中获得了{“n”:1,“ok”:1}个json值。请附上代码片段好吗?那就方便了。