Я хочу передать данные js в node.js

#javascript #node.js #axios

Вопрос:

Я не знаю, как передавать данные с JavaScript на Node.js.
Мне нужно опубликовать allUsers массив и user.username свойство.

 var allUsers = []
var user = {
  username: '',
  password: ''
}
var background = document.getElementById("bg")

function verify() {
  background.style.display = "inline"
  var usrname = document.getElementById("username").value
  var pswrd = document.getElementById("password").value
  user.username = usrname
  user.password = pswrd
  axios.get("dbid").then((response) => {
    var data = response.data
    for (let key in data) {
      var body = data[key]
      allUsers.push(body.user.username)
    }
    return verified();
  })
}

function verified() {
  var inc = allUsers.includes(user.username)
  if (user.password.length < 8) {
    alert('Şifreniz en az 8 karakter olmalıdır!');
    return background.style.display = "none";
  } else if (inc) {
    alert("Böyle bir mail adresi önceden kaydolmuş! Lütfen başka bir mail adresi deneyim.");
    return background.style.display = "none";
  } else {
    alert("Başarılı, G-mail adresinize bir doğrulama kodu gönderildi...");
    axios.post("dbid", {
      user: user
    })
    return background.style.display = "none";
  }
}
 

Ответ №1:

Если вам нужно опубликовать массив данных (в данном случае allUsers ) и строку ( username ), вам необходимо использовать JSON.stringify метод для преобразования массива в строку JSON. Вот асинхронная функция, которая будет публиковать данные, которые вам нужно отправить на сервер:

 const postData = async () => {
    try {
        await axios.post(<url-to-post>, {
            users: JSON.stringify(allUsers),
            username: user.username
        })
    } catch (err) {
        // Error posting data
        console.log(err)
    }
}