Обратный звонок не работает в запросе npm - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть некоторые проблемы с обратным вызовом, когда я использую Запрос npm.Мой проект - это API для пользователей, разработанный Sailsjs, с другой стороны, я использую реагирование для внешнего интерфейса, и я использую Request npm для связи с API.У меня есть некоторые проблемы с обратным вызовом.

Мой код:

 handleClick(event) {
    var apiBaseUrl = "http://localhost:1337/user";
   if (
      this.state.first_name.length > 0 &&
      this.state.last_name.length > 0 &&
      this.state.email.length > 0 &&
      this.state.password.length > 0
    ) {
      request.post({url : apiBaseUrl + "/store", form :{
        first_name: this.state.first_name,
        last_name: this.state.last_name,
        email: this.state.email,
        password: this.state.password
      }}, function(response) {
          console.log(response);
          if (response.data.code === 200) {
            var loginscreen = [];
            loginscreen.push(
              <Login
                parentContext={this}
                appContext={this.props.appContext}
                key = {rand}
              />
            );
            var loginmessage = "Not Registered yet.Go to registration";
            this.props.parentContext.setState({
              loginscreen: loginscreen,
              loginmessage: loginmessage,
              buttonLabel: "Register",
              isLogin: true
            });
          } else {
            console.log("some error ocurred", response.data.code);
          }
        });
    } else {
      alert("Input field value is missing");
    }
  }

Почтовый запрос проходит хорошо, когда я проверяю базу данных, я обнаружил, что пользователь сохранен и ответ в сетиOnglet в Chrome это хорошо, но когда я делаю console.log(response), это всегда null.Я не знаю, является ли мой обратный вызов неправильным, или это что-то еще.

форма

img1

http ответ

img2

переменные в ответе

img3

Ошибка

img4

Back-end

// Store user
  store: function(req, res) {
    var params = _.extend(req.query || {}, req.params || {}, req.body || {});
    console.log(params);
    UserService.store(params, function(err, user) {
      if (err) return res.json();
      if (!user) return res.json();
      return res.send({
        "code": 200,
        "success": "user registered sucessfully"
      });
    });
  },

Можете ли вы помочь мне решить эту проблему?

1 Ответ

0 голосов
/ 25 апреля 2018

На самом деле, проблема в вашем обратном вызове, обратный вызов принимает два аргумента , должно быть так:

function(error, response) {.....}

ошибка является первымаргумент и ответ второй, вы получаете null, потому что есть нет ошибка!и ответ был обработан как объект ошибки.

...