我已经阅读了很多教程和帖子,但是我却越来越困惑。用Laymen的术语(极其简单和明确的术语),下面的代码做什么?什么是replace(/ / g,'-')?什么是req.params.item?
return todo.item.replace(/ /g, '-') !== req.params.item;
有关更多上下文,整个代码如下所示。
var bodyParser = require('body-parser');
var data = [{item: 'get milk'}, {item: 'walk dog'}, {item: 'kick
some coding ass'}];
var urlencodedParser = bodyParser.urlencoded({extended: false});
module.exports = function(app) {
app.get('/todo', function(req, res){
res.render('todo', {todos: data});
});
app.post('/todo', urlencodedParser, function(req, res){
data.push(req.body);
res.json(data);
});
app.delete('/todo/:item', function(req, res){
data = data.filter(function(todo){
return todo.item.replace(/ /g, '-') !== req.params.item;
});
res.json(data);
});
};
答案 0 :(得分:2)
它将todo.item
字符串中的所有空格变为破折号,将替换后的字符串与req.params.item
进行比较,如果它们不同则返回true
。例如,如果todo.item
是foo bar
,而req.params.item
是foo-bar
,它将返回false
。
过滤器的作用
data = data.filter(function(todo){
return todo.item.replace(/ /g, '-') !== req.params.item;
});
是否将data
变成一个数组,其中包含仅 个未通过该测试的项目。
let data = [
{ item: 'foo bar' },
{ item: 'bar baz' },
{ item: 'baz buzz' },
];
const req = { params: { item: 'bar-baz' }};
data = data.filter(function(todo){
return todo.item.replace(/ /g, '-') !== req.params.item;
});
console.log(data);