ajax post 500 внутренняя ошибка сервера при использовании Node и Nginx - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь отправить сообщение на свой сервер узлов, но я получаю «Не удалось загрузить ресурс» 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 находится в назначении 2 / Foghorn в папке html моего Nginx

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

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

1 Ответ

0 голосов
/ 19 сентября 2019

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...