gpt4 book ai didi

javascript - 使用 query() 方法不使用 Ember.js 从模型中检索任何信息

转载 作者:行者123 更新时间:2023-12-03 03:45:12 24 4
gpt4 key购买 nike

我正在尝试通过使用前端框架、后端 Node.js 以及 mongoDB 作为数据库构建一个 Web 应用程序来学习 Ember.js。

我正在使用/尝试使用 URL 来输入参数 ID,然后查询该 ID。

我无法从模型中获取信息。当我使用 findAll() 时,我的查询工作正常。但是,当我切换到 find() 或 query() 时,我无法检索任何结果。

我看过的所有文档都使用了不同的语法,我已经尝试过但没有一个有效。

我将非常感谢任何提示或意见。谢谢。

应用程序/router.js

    Router.map(function() {
this.route('stock', { path: '/:stock_id' });
});

app/routes/stock.js

    export default Ember.Route.extend({
model: function(params) {
this.store.query('stock', {filter:{id : params.stock_id}}).then(function(stock){return stock.get('firstObject')});
}
});

app/models/stock.js

    export default DS.Model.extend({
Symbol: DS.attr('string'),
Name: DS.attr('string'),
LastSale: DS.attr('string'),
MarketCap: DS.attr('string'),
IPOyear: DS.attr('string'),
Industry: DS.attr('string')
});

应用程序/序列化器/stock.js

    export default DS.RESTSerializer.extend({
primaryKey: '_id',
serializeId: function(id) {
return id.toString();
}
});

应用程序/模板/stock.hbs

   {{#each model as |item|}}
<h3>{{item.Name}}</h3>
{{/each}}

我的nodejs服务器

     app.get('/api/stocks/:id', function(req, res){
StockModel.findOne({'_id': req.params.id},function(err,docs){
console.log(docs.symbol);
if(err){
res.send({error:err});
}
else{
res.send({stock:docs});
}
});
});

最佳答案

模型钩子(Hook)应该返回结果,然后才会通过setupController方法钩子(Hook)在相应 Controller 的model中设置该结果。

model: function(params) {
return this.store.query('stock', {filter:{id : params.stock_id}}).then(function(stock){return stock.get('firstObject')});
}
<小时/>

更新:您的模型字段名称应采用驼峰式

// app/models/stock.js
export default DS.Model.extend({
symbol: DS.attr('string'),
name: DS.attr('string'),
lastSale: DS.attr('string'),
marketCap: DS.attr('string'),
iPOyear: DS.attr('string'),
industry: DS.attr('string')
});

并确保您的后端接受过滤器并以以下格式返回所需的结果,

"stocks": [
{
"id": 1,
"symbol": "foo",
"name": "foo",
"lastSale": "foo",
"marketCap": "foo",
"iPOyear": "foo",
"industry": "foo"
}]

关于javascript - 使用 query() 方法不使用 Ember.js 从模型中检索任何信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45423289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com