发布 - 无法GET错误 - 本地服务器

时间:2017-02-14 15:03:00

标签: javascript api express post routes

我正在尝试使用本地服务器创建API进行测试。路线 ' GET'工作得很好但是' POST'有问题,它正在返回'无法获取/添加/命名'。我正在使用node.js和Express开发API。当路线设置为' POST'?为什么我会收到问题在哪里?

var fs = require('fs');
var data = fs.readFileSync('events.json');
var allEvents = JSON.parse(data);

console.log(allEvents);
console.log('Server running.');

var express = require('express');
var app = express();
var sever = app.listen(3000, listening);

function listening() {
    console.log('Serving...');
}

app.use(express.static('website'));

//GET and send all data from JSON
app.get('/all', sendAll);

function sendAll(request, response) {
    response.send(allEvents);
}

//POST new data to JSON
app.post('/add/:name', addData);

function addData(request, response) {

  var newData = request.params;
  var name = newData.name;
  var eventType = newData.eventType;
  var reply;

  // var newEvent = {
  //   name: ":name",
  //   eventType: ":eventType",
  // };

  var newData = JSON.stringify(allEvents, null, 2);
  fs.writeFile('events.json', newData, finished);

  function finished(err) {
      console.log('Writting');
      console.log(err);
      var reply = {
          word: word,
          score: score,
          status: 'Success'
      }
      response.send(reply);
  }
}

请求

$(function() {
  //HTML
    var $list = $('#list');

    var jsonURL = '../events.json'

    $.ajax({
        type: 'GET',
        url: '/all',
        success: function(data) {
      console.log('Data received', data);
            $.each(data, function (type, string) {
                $list.append('<li>' + type + " : " + string + '</li>');
            });
        },
        error: function (err) {
            console.log('Error, data not sent.', err);
        }
    });

    $('#submit').on('click', function () {

        // var newEvent = {
        //  name: $name.val(),
    //   eventType: $eventType.val(),
        // };

    var name = $('#fieldName').val();
    var eventType = $('#fieldEventType').val();
    console.log(name);

        $.ajax({
            type: 'PUT',
            url: '/add/' + name,
            success: function (addData) {
                $list.append('<li>name: ' + name + '</li>');
            },
            error: function (err) {
                console.log('Error saving order', err);
            }
        });
    });
});

提前谢谢。

1 个答案:

答案 0 :(得分:0)

为了测试POST请求,您可以使用Postman进行测试。如果您使用浏览器调用api,它将是GET方法而不是POST。

POST request in postman