используйте express nodejs rest api шаблон для создания нового маршрута - PullRequest
0 голосов
/ 31 января 2020

Я новичок в expressjs, я планирую использовать этот шаблон для моего проекта API остальных. Я хочу знать, как расширить существующие маршруты для обновления или создания остальных API. из коробки, если я запускаю код, он работает для http://localhost: 8080 / api / facets / Я хочу расширить маршрут как http://localhost: 8080 / api / facets / create или http://localhost: 8080 / api / facets / list

Я запутался в файле express -es6-rest-api / src / api / index. js и express -es6-rest-api / src / api / facets. js

объясните ниже код:

export default ({ config, db }) => {
    let api = Router();
    // mount the facets resource
    api.use('/facets', facets({ config}));
    // perhaps expose some API metadata at the root
    api.get('/', (req, res) => {
        console.log(api)
        res.json({ version });
    });


 return api;
}

Ответы [ 2 ]

1 голос
/ 31 января 2020

Я предлагаю вам создать другой файл фасетов внутри src / api и попытаться создать свой собственный express маршрутизатор без каких-либо библиотек, таких как "resource-router-middleware".

Пожалуйста, прочитайте https://expressjs.com/en/guide/routing.html.

Здесь вы можете увидеть, как легко вы можете создать еще один express маршрутизатор, который можно импортировать в index.js и использовать вместо существующего на основе «resource-router-middleware» , Таким образом, вы будете иметь полный контроль над маршрутами, включая любые имена, которые вы хотите.

Я приведу краткий пример того, что я имею в виду с самым простым маршрутом в репо:

import { Router } from 'express'

let router = Router()

router.get('/get', (req, res) => {
    res.json(facets)
})

export default router

Если вы импортируете этот маршрутизатор внутри «index. js» и используете его внутри: «api.use ('/ facets, newFacetsRouter)», где newFacetsRouter - импортированный маршрутизатор сверху, вы увидите, что теперь вы можете вызывать GET "/facets/get" вместо предыдущего GET "/facets". Вы можете продолжить код, который я разместил для всех методов, следующим образом:

router.["HTTP METHOD"]('/["ROUTE NAME"]', callback)

Где «МЕТОД HTTP» может быть: «получить, опубликовать, поместить, удалить». «ROUTE NAME» - это то, что вы хотите. И обратный вызов - это функция, которая выполняется после успешного вызова http.

А что касается размещенного вами кода, вы хотели, чтобы он объяснил: это просто express маршрутизатор, куда мы импортируем другой express маршрутизатор внутри, снова, пожалуйста, прочитайте express документы о маршрутизации.

0 голосов
/ 31 января 2020

Немного сложно набрать asp что вам действительно нужно, чтобы помочь. Вам нужна помощь в понимании проекта и кода или вы sh узнаете, как создавать новые конечные точки для вашего API? Итак, позвольте мне показать вам простой маленький CRUD API для записанных фасетов.

Установка express и анализатор тела

npm i -S express
npm i -S body-parser

Установите сервер, добавьте анализатор тела и зарегистрируйте конечные точки Вы будете использовать sh.

const express = require('express');
const json = require('body-parser');

const facets = [];

const app = express();
app.use(json());

app.get('/api/facets', (req, res) => {
    res.send(facets);
});

app.post('/api/facets', (req, res) => {
    facets.push(req.body);
    res.send(req.body);
});

app.put('/api/facets/:index', (req, res) => {
    facets[req.param.index] = req.body;
    res.send(req.body);
});

app.delete('/api/facets/:index', ((req, res) => {
    facets.splice(req.param.index, 1);
    res.send(facets);
}));

app.listen(1337, () => {
    console.log('Server is runing');
});
...