Node.js 使用来自emberJs的params筛选器快速路由
我在创建此url的路由时遇到问题:Node.js 使用来自emberJs的params筛选器快速路由,node.js,express,ember.js,Node.js,Express,Ember.js,我在创建此url的路由时遇到问题: 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' });
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);
});
但当我用postman测试服务器时,我得到了以下结果:
无法获取/api/tests?过滤器%5Bcodeid%5D=eeee
有人知道怎么处理这个吗
编辑:
我使用json api
这是我的服务器文件,包含我的所有路由:
尝试下面的代码
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!');
});
您试图做的是所谓的快速查询,所以您的路由不应该有额外的参数,它应该是这样的
app.get('/test', (req, res, next) => {
console.log(req.query);
res.status(200).json(req.query);
});
当你发送该路线的请求时,比
我终于找到了问题的解决方案,在这里: 因此,错误在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);
});
绑定路径是
/api/tests
,?过滤器%5Bcodeid%5D=eeee
是请求参数。您可以绑定/api/test/filter-:codeid
。相同的东西它不工作相同的东西过滤器不工作,我只有它工作的东西