ExpressJS Маршрутизация сохранения параметров в Store.js - PullRequest
0 голосов
/ 27 августа 2018

Итак, я получил этот Store.js со следующими двумя функциями:

select: function(type, id) {
        var list = memory[type];
        id = parseInt(id);
        list =  (list == undefined || list.length === 0)? undefined: list; // prevent []
        if (list != undefined && list.length > 0 && !isNaN(id)) {
            list = list.filter(function(element) {
                return element.id === id;
            });
            list =  (list.length === 0)? undefined: list[0]; // only return the 1 found element; prevent empty []
        }
        return getDeepObjectCopy(list); // may contain undefined, object or array;
    },


insert: function(type, element) {
    checkElement(element);
    if (element.id !== undefined) {
        throw new Error("element already has an .id value, but should not on insert!",e);
    }
    element.id = globalCounter();
    memory[type] = memory[type] || [];
    memory[type].push(getDeepObjectCopy(element));
    return element.id;
},

В моем Videos.js я получил этот маршрут. Как я могу отправить данные в этот магазин и как я могу получить их обратно?

videos.route('/')
    .get(function(req, res, next) {
        store.select(req)
        next();
    })
    .post(function(req,res,next) {
        store.insert(/json/ , {
            "title": req.param.name,
        })
        next();
    });

1 Ответ

0 голосов
/ 27 августа 2018

редактировать

Мой ответ немного отклонился.

То, как вы проверяете запросы и отправляете ответы, немного странно.

Ваш код должен выглядеть примерно так:

videos.route('/')
    .get(function(req, res, next) {
        if(!req.accepts('json')) {
            res.status(406).send('response of application/json only supported, please accept this');
        }
        res.send(getVideos());
    })
    .post(function(req,res,next) {
        if(!( /application\/json/.test(req.get('Content-Type')))) {
            res.status(415).send('wrong Content-Type');  // user has SEND the wrong type
            return;
        }

        const item = store.insert(/json/ , {
            "title": req.body.name,
        })
        res.send(item);
    });



insert: function(type, element) {
    checkElement(element);
    if (element.id !== undefined) {
        throw new Error("element already has an .id value, but should not on insert!",e);
    }
    element.id = globalCounter();
    memory[type] = memory[type] || [];
    return memory[type];
}

Проверка содержимого может войти в функции промежуточного программного обеспечения, а не прямо в обратные вызовы контроллера маршрутизатора. Но этот код помогает понять, как следует обрабатывать запросы.

Надеюсь, это поможет

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