Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js ExpressJS路由将参数保存到Store.js_Node.js_Express - Fatal编程技术网

Node.js ExpressJS路由将参数保存到Store.js

Node.js ExpressJS路由将参数保存到Store.js,node.js,express,Node.js,Express,所以我得到了这个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

所以我得到了这个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();
    });
编辑

我的回答有点错误

您验证请求和发送响应的方式有点奇怪

您的代码应该更像这样:

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];
}
内容验证可以进入中间件功能,而不是直接进入路由器控制器回调。但这段代码有助于让您了解应该如何处理请求


希望这有帮助

它有帮助,但我如何发布并获取保存的对象?你的意思是,如何在你的POST方法上获取JSON响应?@F0rce它有帮助,因为现在它不会检查正确的请求主体类型。我知道但我知道我遇到了一个问题,我如何通过POST保存数据并通过get-into-my Store.js获取数据