首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >FeatherJS错误消息:现已弃用调用populate(target,options)

FeatherJS错误消息:现已弃用调用populate(target,options)
EN

Stack Overflow用户
提问于 2018-05-30 18:19:03
回答 2查看 159关注 0票数 0

我正在使用Feathers框架和mongoose库来创建web服务,但是当我想启动我的项目时,我得到了这个错误消息:

代码语言:javascript
复制
 Mongoose option.lean is false. Use hook.results.toObject() to convert the results to JS objects
Calling populate(target, options) is now DEPRECATED and will be removed in the future

代码:

代码语言:javascript
复制
  var mongooseService = require('feathers-mongoose');

 app.use('user', mongooseService({
     name: 'user',
     Model: require('./../models/user'),
     id: 'cuid'
   }))

   .use('post', mongooseService({
     name: 'post',
     Model: require('./../models/post'),
   }))

 var getLastPost = function() {
   return app.service('post').find({
     query: {
       "status": {
         $in: [0, 1, 2]
       },
       $select: ['version', '_id']
     }
   });
 };
 app.service('post')
   .before(getLastPost)
   .after(hooks.populate('user', {
     service: 'user'
   }))

要删除此错误消息,我需要做些什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-30 20:03:33

修复第二条消息错误的步骤:

代码语言:javascript
复制
 var auk = require('feathers-hooks-common');
   var populate = function(serviceName,name,parentFieldName,childFieldName){
   return auk.populate({
      schema: {
      include: {
        service: serviceName,
        nameAs: name,
        parentField: parentFieldName,
        childField: childFieldName
      }
    }
  })
  }
  app.service('post').hooks({
    after: {all: populate("user","user","user","_id")}
  });
票数 0
EN

Stack Overflow用户

发布于 2018-05-30 18:35:24

在定义服务时,需要添加精益属性。

代码语言:javascript
复制
 var mongooseService = require('feathers-mongoose');

 app.use('user', mongooseService({
     "name": 'user',
     "Model": require('./../models/user'),
     "id": 'cuid',
     "lean": true
   }))

   .use('post', mongooseService({
     "name": 'post',
     "Model": require('./../models/post'),
     "lean": true
   }))

 var getLastPost = function() {
   return app.service('post').find({
     query: {
       "status": {
         $in: [0, 1, 2]
       },
       $select: ['version', '_id']
     }
   });
 };
 app.service('post')
   .before(getLastPost)
   .after(hooks.populate('user', {
     create: function(hook, next) {
        hook.result = hook.result.toObject();
        next();
     },
     service: 'user'
   }))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50602184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档