我有一个GET REST服务需要接受带有/
的参数网址=" / term /:term / amount /:amount" 其中:term可以是" para / 5MG"等字符串。
有没有办法在快递中做到这一点?当我的api被使用时,我宁愿不用queryparams重写它。
答案 0 :(得分:1)
本地,表达尝试在/
分割,因此您必须手动分割。这是一个这样做的例子:
app.get('/term/\\S+/amount/:amount', function (req, res, next){
var match;
if(match = req.path.match(/^\/term\/(.*?)\/amount\/(.*)$/)){
var term = match[1];
var amount = req.params.amount;
// or do whatever you like
res.json({term: term, amount: amount})
}else{
res.sendStatus(404);
}
})
这种方法会让你失去很多内在的魔力。首先对参数进行URI编码可能会更好。 (像这样:term/para%2F5MG/amount/3
)
答案 1 :(得分:0)
var _persons = [
{
name: 'John'
},
{
name: 'Sarah'
}
];
function Person(person){
this.person = person;
}
Person.prototype.greeting = function(){
return 'hello ' + this.person.name;
};
var persons = [];
function createPersons(people){
for(var i = 0;i<people.length;i++){
var person = new Person(people[i]).person;
persons.push(person);
}
};
createPersons(_persons);
console.log(persons[0].name); // logs 'John'
document.write('John');