Helpers - компьютеры, интернет, программирование

ajax post 500 внутренняя ошибка сервера с использованием Node и Nginx

Я пытаюсь отправить сообщение на свой сервер узла, но получаю код ошибки внутреннего сервера 500 «Не удалось загрузить ресурс», и я не могу понять, почему.

Вот ошибка о том, что говорит Node.

Мой код сервера:

var db     = null
var app = null
//console.error(config.mongohq)
mongo.init(
  {
    name:     config.mongohq.name,
    host:     config.mongohq.host,
    port:     config.mongohq.port,
    username: config.mongohq.username,
    password: config.mongohq.password,
  },
  function(res){
    db = res
    var prefix = '/assignment2/'
    app = express()
    // Configuration
     app.use(bodyParser.json()); // for parsing application/json
     app.use(bodyParser.urlencoded({ extended: true })); // for parsing

     //multer_upload = multer({ dest: './images' }).any();

    app.get(prefix + 'search/:query', search);
    app.post(prefix + ":chicken/log", log)

    app.listen(3009)
    console.error('Server listening on port 3009')
  },
  function(err){
    console.error(err)
  }
)

function log(req,res)
{
      var list = JSON.parse(req.body.items);
      console.log(hello)
      for (var i = 0; i <list.length; i++)
      {
        fs.appendFile("assignment2/Foghorn/log.dat", JSON.stringify(list[i]));
      }
}

Мой почтовый индекс на стороне клиента:

//Clear the local storage and array of the user's choice of chicken type


var server = "http://xxxx:xxxx/assignment2/";
function sendLogs()
{
        clearFields();
        var path;

        if(chickenNumber == 0)
        {
          var items = {logs: foghorn_items};
          path = server + "Foghorn/log";
          $.ajax({
          url: path,
          method: 'POST',
          dataType: 'JSON',
          data: items,
          success: function (data){
            alert('Logs sent to file');
          }
          });

    //      foghorn_items.length = 0;
    //      localStorage.removeItem("foghorn_items");

}

Скрыл мой ip и порт из соображений безопасности.

Я почти уверен, что мой файл log.dat находится в папке Assignment2/Foghorn в папке html моего Nginx.

Согласно узлу, ошибка указывает на 1-ю строку в методе log().

Есть идеи, в чем проблема?

19.09.2019


Ответы:


1

Оскорбительная строка в вашем коде — var list = JSON.parse(req.body.items).

Но req.body.items — это не текстовая строка, это объект с параметрами тела. Итак, конечно, JSON.parse отклоняет его.

Промежуточное ПО синтаксического анализатора JSON (app.use(bodyParser.json())) анализирует JSON в вашем запросе и помещает результат в req.body. Таким образом, вам не нужно разбирать его снова.

19.09.2019
  • Ага, понятно. Я новичок в этом, поэтому я не понял этого. попробую ваше предложение 20.09.2019
  • Не знаю, почему за вас проголосовали, но это решило мою проблему. 20.09.2019
  • Некоторые люди голосуют против вопросов и ответов, когда они уже знают ответы и считают их очевидными. Не беспокойтесь о минусах. 20.09.2019
  • Новые материалы

    Интуитивное понимание тензоров в машинном обучении
    Тензор является важной концепцией во многих научных областях, таких как математика, физика, обработка сигналов и компьютерное зрение, и это лишь некоторые из них. В математике тензор — это..

    Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
    Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

    Почему объяснимость так важна прямо сейчас?
    По мере того, как системы искусственного интеллекта и инструменты на основе машинного обучения распространяются в нашей повседневной жизни, как практики, так и критики все чаще заявляют о..

    Анимированный математический анализ
    Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

    Создание простого слайдера изображений с помощью JavaScript
    Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

    Создание базы данных с помощью супергероя «Python»
    В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

    ИИ для чайников: руководство для начинающих по пониманию будущего технологий
    Вы чувствуете, что остались позади в мире ИИ? Не волнуйтесь, вы не одиноки! Со всей этой шумихой вокруг искусственного интеллекта может быть трудно понять, с чего начать. Но не позволяйте сленгу..