【问题标题】:MEAN - Get JSON part from Mongo _id (using: Mean)MEAN - 从 Mongo _id 获取 JSON 部分(使用:平均值)
【发布时间】:2016-10-11 17:57:00
【问题描述】:

我想在访问此 URL 时返回电话号码(仅限):

api/customers/57579110f686f6e11dac4b17/phone

我可以从此 URL 获取以下 JSON:
api/customers/57579110f686f6e11dac4b17

(整个 JSON 结构):

{"_id":"57579110f686f6e11dac4b17","phone":"5555555","lastname":"Lname","firstname":"Fname","__v":0,"address":{"zip":"17837","state":"Pennsylvania","city":"gvkgv","street":"bxihe"}}

我可以通过这个网址获取地址:
api/customers/57579110f686f6e11dac4b17/地址

{"street":"bxihe","city":"gvkgv","state":"Pennsylvania","zip":"17837"}

我什至可以得到街道:
api/customers/57579110f686f6e11dac4b17/address/street

"bxihe"

但我无法从这里获得电话号码:
api/customers/57579110f686f6e11dac4b17/电话

为什么?
我该怎么做呢?


我的代码:
api.js - 链接到 server.js

router.get('/customers/:id', function(req, res) {
    Customer.findOne({_id: req.params.id}, function(err, data) {
        res.json(data);
    })
})

router.get('/customers/:id/phone', function(req, res) {
    Customer.findOne({_id: req.params.id}, function(err, data) {
        res.json(data);
    })
})

router.get('/customers/:id/address', function(req, res) {
    Customer.findOne({_id: req.params.id}, function(err, data) {
        res.json(data.address);
    })
})

router.get('/customers/:id/address/street', function(req, res) {
    Customer.findOne({_id: req.params.id}, function(err, data) {
        res.json(data.address.street);
    })
})

Api.js - 用于前端 - (Angular.js)

myApp.factory('Api', ['$resource', function($resource) {
    return {
        Customer: $resource('/api/customers/:id', {id: '@id'})
    }
}]);

myApp.factory('Api', ['$resource', function($resource) {
    return {
        Customer: $resource('/api/customers/:id/address', {id: '@id'})
    }
}]);

myApp.factory('Api', ['$resource', function($resource) {
    return {
        Customer: $resource('/api/customers/:id/address/street', {id: '@id'})
    }
}]);

谢谢

【问题讨论】:

    标签: angularjs json node.js mongodb


    【解决方案1】:

    您似乎错过了电话路由中 findOne 的 _id 上的下划线。

    router.get('/customers/:id/phone', function(req, res) {
        Customer.findOne({_id: req.params.id}, function(err, data) {
            res.json(data);
        })
    })
    

    【讨论】:

    • 抱歉,感谢您指出这一点。缺少副本和过去的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    相关资源
    最近更新 更多