Я создал небольшой 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. Заранее благодарим за помощь!