我在为此网址制作路线时遇到问题:
http://localhost:3000/api/tests?filter%5Bcodeid%5D=eeee
目前我试过这个:
在服务器中
app.route('/api/tests?filter[codeid]=:param')
.get((req, res) => {
console.log('It works');
res.status(200).send({
msg: 'It works'
});
});
在前面
this.store.query('test', { filter: { codeid: code } })
.then(test => {
if(test.get('firstObject')){
console.log(test.get('firstObject').get('id'));
console.log('exist');
}
})
.catch(err => {
console.log(err);
});
但是当我用邮递员测试我的服务器时,我得到了这个结果:
Cannot GET /api/tests?filter%5Bcodeid%5D=eeee
有人知道如何管理这个吗?
修改
我使用json-api
https://github.com/ethanresnick/json-api
这是我的所有路线的服务器文件:
答案 0 :(得分:2)
您尝试做的是名为快速查询Express doc,因此您的路线不应该有额外的参数,它应该看起来像这样
app.get('/test', (req, res, next) => {
console.log(req.query);
res.status(200).json(req.query);
});
当你发送该路线的请求时......
答案 1 :(得分:0)
我终于找到了问题的解决方案,在这里:
https://github.com/ethanresnick/json-api/issues/64
所以错误是在ember中,为了使它有效,我改变了这个:
this.store.query('test', { filter: { codeid: code } })
.then(test => {
if(test.get('firstObject')){
console.log(test.get('firstObject').get('id'));
console.log('exist');
}
})
.catch(err => {
console.log(err);
});
对此:
this.store.query('test', { filter: { simple { codeid: code } } })
.then(test => {
if(test.get('firstObject')){
console.log(test.get('firstObject').get('id'));
console.log('exist');
}
})
.catch(err => {
console.log(err);
});
答案 2 :(得分:-1)
尝试以下代码
var express = require('express');
var app = express();
app.use(require('body-parser').urlencoded({extended: false})); // to provide req.params.param
app.route('/test')
.get((req, res) => {
console.log('It works');
res.status(200).json({ // I think you doesn't want send text
msg: 'It works'
});
});
app.route('/test/filter[codeid]=:param')
.get((req, res) => {
console.log('It works', req.params.param);
res.status(200).send({
msg: 'It works',
code: req.params.param
});
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});