Node.js 使用内置模型accessToken在环回中不起作用

Node.js 使用内置模型accessToken在环回中不起作用,node.js,strongloop,loopbackjs,Node.js,Strongloop,Loopbackjs,我正在尝试为android应用程序编写api,并希望使用node.js+环回来实现这一点。但是我在测试/学习这门语言时遇到了一些困难 下面的代码应该会在我的数据库中生成新用户(确实是这样),但当我尝试使用此用户登录时,没有在控制台中创建一个printen。知道我做错了什么吗 我的测试代码:create-Test-data.js var-app=require('./app'); var dataSource=app.dataSources.mysql; var loopback=require(

我正在尝试为android应用程序编写api,并希望使用node.js+环回来实现这一点。但是我在测试/学习这门语言时遇到了一些困难

下面的代码应该会在我的数据库中生成新用户(确实是这样),但当我尝试使用此用户登录时,没有在控制台中创建一个printen。知道我做错了什么吗

我的测试代码:create-Test-data.js

var-app=require('./app');
var dataSource=app.dataSources.mysql;
var loopback=require(‘loopback’);
var User=loopback.User;//获取用户模型
var AccessToken=loopback.AccessToken;//获取AccessTokenModel
/*
初始化数据库时,请执行此操作。如果已经存在,它将清理它。
automigrate('user',function(err){});
自动迁移('account',function(err){});
自动迁移('accesstoken',函数(err){});
*/
//在mysql数据库中创建一些用户
创建({用户名:'timbo',电子邮件:'test@gmail.com,密码:'monkey123'},函数(err,user){console.log(user);};
创建({用户名:'timbo2',电子邮件:'test2@gmail.com,密码:'monkey123'},函数(err,user){console.log(user);};
创建({用户名:'timbo3',电子邮件:'test3@gmail.com,密码:'monkey123'},函数(err,user){console.log(user);};
User.login({username:'timbo',password:'monkey123'},函数(err,accesstoken){console.log(“这是令牌:+accesstoken);});
//数据库中未创建/保存accesstoken
datasource.json

models.json

控制台输出

{ username: 'timbo',
  email: 'test@gmail.com',
  password: '$2a$10$972DFwMOuOhKj5ThfbchC.ipcNaW27ccpHMRkW17uSLutaCHyZF0G',
  realm: undefined,
  emailVerified: undefined,
  verificationToken: undefined,
  credentials: [],
  challenges: [],
  status: undefined,
  created: undefined,
  lastUpdated: undefined,
  id: undefined }
{ username: 'timbo2',
  email: 'test2@gmail.com',
  password: '$2a$10$1peSixaOIQq8umOzzEy86OQKxoPFU.Ax2/NWC1oLGjQHPp9oZdPDW',
  realm: undefined,
  emailVerified: undefined,
  verificationToken: undefined,
  credentials: [],
  challenges: [],
  status: undefined,
  created: undefined,
  lastUpdated: undefined,
  id: undefined }
{ username: 'timbo3',
  email: 'test3@gmail.com',
  password: '$2a$10$X3fdV2dL6kjuj69Dqr.jMeVdqIMzveN7NnJP5TXag54b4tpzZ4LGW',
  realm: undefined,
  emailVerified: undefined,
  verificationToken: undefined,
  credentials: [],
  challenges: [],
  status: undefined,
  created: undefined,
  lastUpdated: undefined,
  id: undefined }
This is the token: undefined
This is the token err: Error: ER_BAD_FIELD_ERROR: Unknown column 'ttl' in 'field list'

您必须首先将与用户相关的模型附加到数据源:

loopback.User.attachTo(dataSource);
loopback.AccessToken.attachTo(dataSource);
loopback.Role.attachTo(dataSource);
loopback.ACL.attachTo(dataSource);
并定义
用户
访问令牌
之间的关系:

loopback.User.hasMany(loopback.AccessToken, {as: 'accessTokens'});
创建测试数据时,应等待
User.create
完成,然后再调用
User.login
。(记住,Node.js是异步的。)


令牌回调中的
err
值是多少?这是令牌err:Error:ER\u BAD\u FIELD\u Error:FIELD list中的未知列“ttl”我的err对象具有以下数据:{[Error:login failed]statusCode:401}。第一次登录是否需要用户验证或类似的验证?(例如电子邮件)仍然为创建的令牌提供以下错误:ReferenceError:分配中的左侧无效是否需要在mysql中创建一些额外的表或其他内容?请将您的问题发布到环回邮件列表,并包含完整的错误消息,包括堆栈跟踪。
loopback.User.attachTo(dataSource);
loopback.AccessToken.attachTo(dataSource);
loopback.Role.attachTo(dataSource);
loopback.ACL.attachTo(dataSource);
loopback.User.hasMany(loopback.AccessToken, {as: 'accessTokens'});
User.create(
  {username: 'timbo', email: 'test@gmail.com', password: 'monkey123'},
  function(err, user) {
    // TODO: handle err != null
    User.login(
      {username: 'timbo', password: 'monkey123'},
      function(err, accesstoken) {
        console.log("This is the token: " + accesstoken);
      });
  });