API, почтовый запрос, AJAX, выборка, попытка отправить почтовый запрос к моему API на локальном хосте из другого приложения - PullRequest
0 голосов
/ 01 августа 2020

Я создал небольшой API, который принимает только почтовые запросы, потому что это, по сути, проверка скобок. Пользователь вводит строку и в ответ получает ответ о достоверности. Думаю, вы все знакомы со средством проверки скобок. В любом случае, я все еще новичок в программировании, и мне нужна небольшая помощь. Вот как выглядит мой API:

1 / app.js

const app = express();

const parenthesesRoutes = require('./parentheses');
app.use('/parentheses', parenthesesRoutes);

module.exports = app;

2 / server.js

const app = require('./app')

const port = process.env.PORT || 3000;

const server = http.createServer(app);
server.listen(port);

3 / My API parenthese.js


const express = require('express'), bodyParser = require('body-parser');
const router = express.Router();

router.use(bodyParser.json());

router.post('/', (req, res, next) => {
  const stringCheck = ({
    string: req.body
  });
  if (parenthesesChecker(stringCheck.string.string).result === true) {
    res.status(200).json({
      "isValid": true
    });
  } else {
    res.status(400).json({
      "isValid": false,
      "errorDetails": {
          "preceedingParentheses": `${parenthesesChecker(stringCheck.string.string).preceeding}`,
          "erroneosParentheses": `${parenthesesChecker(stringCheck.string.string).erroneos}`
      }
    });
  };
});

module.exports = router;

4 / API вызывает эту функцию в отдельном файле checker.js

  const openArray = ["(", "[", "{", "<"];
  const closeArray = [")", "]", "}", ">"];
  let i = 0, parOpen = 0, openingPar= "", closingPar = [], erroneos = "";
  for(i; i < string.length; i++) {
    if (openArray.includes(string[i])) {
      openingPar += string[i];
      parOpen++;
      closingPar.push(closeArray[openArray.indexOf(string[i])]);
    }
    if (closeArray.includes(string[i])) {
      let erroneos = string[i];
      parOpen--;
      if (string[i] === closingPar[closingPar.length - 1]) {
        closingPar.pop();
      } else {
        return { result: false, preceeding: openingPar, erroneos: erroneos };
      };
    };
    if (parOpen < 0) return { result: false, preceeding: openingPar, erroneos: erroneos };
  }
  return { result: (parOpen === 0 ? true : false), preceeding: openingPar, erroneos: erroneos };
};

А вот и другое мое приложение, в котором я sh отправляю запросы Post на свой API, но я действительно не знаю, как с этим справиться:

const fetch = require("node-fetch");

const searchAlgoliaPlaces = (event) => {
  fetch("http://localhost:3000/parentheses", {
    method: "POST",
    body: JSON.stringify({ query: event.currentTarget.value })
  })
    .then(response => response.json())
    .then((data) => {
      console.log(data.hits); // Look at local_names.default
    });
};

Конечно, query: event.currentTarget.value неверен, и это в основном мой вопрос. Как должен выглядеть мой запрос?

И правильно ли выглядит URL-адрес? Я предполагаю, что мне нужно запустить npm start в терминале для запуска моего API, который, кстати, отлично работает с Postman. Заранее благодарим за помощь!

...