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