简体   繁体   English

Loopback:TypeError:无法读取未定义的属性“查找”

[英]Loopback:TypeError: Cannot read property 'find' of undefined

I saw a few questions like mine but couldn't find any solutions that worked so I thought I'd ask.我看到了一些像我一样的问题,但找不到任何有效的解决方案,所以我想我会问。 I'm trying to pull all my data from my database so I can select parts of it in my app.我正在尝试从我的数据库中提取所有数据,以便我可以在我的应用程序中使用 select 部分数据。 I had my database working fine but when I tried to pull the pictures it failed and keeps giving me this error and also does not seem to receive the data from the database:我的数据库工作正常,但是当我尝试提取图片时它失败并一直给我这个错误,而且似乎也没有从数据库中接收数据:

app.model.users.find((err,result)=>{
                ^

TypeError: Cannot read property 'find' of undefined

Here is my code:-这是我的代码:-

server.js:- server.js:-

'use strict';

const loopback = require('loopback');
const boot = require('loopback-boot');

const app = module.exports = loopback();


app.start = function() {
  // start the web server
  return app.listen(function() {
    app.emit('started');
    const baseUrl = app.get('url').replace(/\/$/, '');
    console.log('Web server listening at: %s', baseUrl);
    if (app.get('loopback-component-explorer')) {
      const explorerPath = app.get('loopback-component-explorer').mountPath;
      console.log('Browse your REST API at %s%s', baseUrl, explorerPath);
    }
  });
};



// Bootstrap the application, configure models, datasources and middleware.
// Sub-apps like REST API are mounted via boot scripts.
boot(app, __dirname, function(err) {
  if (err) throw err;

  // start the server if `$ node server.js`
  if (require.main === module)
    app.start();
});

console.log(Object.keys(app.models));

app.model.users.find((err,result)=>{
  if(result.length ===0){
    const user={
      email:'jhanvi@gmail.com',
      password:'jhanvi',
      username: 'jhanvi',
    };

    app.models.user.create(user,(err,result)=>{
      console.log("tried to create user ",err,result);
    });
  }
});

app.models.user.afterRemote('create', (ctx,user,next) =>{
  console.log("new user is",user);
  app.models.Profile.create({
    first_name: user.username,
    created_at: new Date(),
    userId: user.id
  },(err,result)=>{
    if(!err && result){
      console.log("created new profile",result);
    }
    else{
      console.log("there is an error ",err);
    }
  });
  next();
  
});

user.json:-用户.json:-

{
  "name": "user",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "email": {
      "type": "string"
    },
    "password": {
      "type": "string"
    }
  },
  "validations": [],
  "relations": {
    "Profile": {
      "type": "hasMany",
      "model": "Profile",
      "foreignKey": ""
    },
    "accessTokens":{
      "type":"hasMany",
      "model":"CustomAccessToken",
      "foreignKey":"userId"
    }
  },
  "acls": [],
  "methods": {}
}

Profile.json:- Profile.json:-

{
  "name": "Profile",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "first_name": {
      "type": "string"
    },
    "last_name": {
      "type": "string"
    },
    "created_at": {
      "type": "date"
    },
    "age": {
      "type": "number"
    },
    "history": {
      "type": [
        "object"
      ]
    }
  },
  "validations": [],
  "relations": {
    "user": {
      "type": "belongsTo",
      "model": "user",
      "foreignKey": "userId"
    }
  },
  "acls": [],
  "methods": {}
}

In your model you refer to user .在您的 model 中,您指的是user

app.model.users.find((err,result)

should then surely be那么肯定应该是

app.model.user.find((err,result)

(i see you seem to be using both versions...) (我看到你似乎在使用这两个版本......)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM