Javascript 远程方法未显示在环回API资源管理器中

Javascript 远程方法未显示在环回API资源管理器中,javascript,node.js,loopbackjs,Javascript,Node.js,Loopbackjs,我有一个角色映射模型,它将用户ID映射到角色ID,我需要角色映射模型上的远程方法来检索给定用户ID的角色映射ID 这是remoteMethod的代码 'use strict'; module.exports = function(Rolemapping) { Rolemapping.getRolesByUser = async function (id, cb) { const roleMappings = await Rolemapping.find({ where: { pr

我有一个角色映射模型,它将用户ID映射到角色ID,我需要角色映射模型上的远程方法来检索给定用户ID的角色映射ID

这是remoteMethod的代码

'use strict';

module.exports = function(Rolemapping) {
   Rolemapping.getRolesByUser = async function (id, cb) {
    const roleMappings = await Rolemapping.find({ where: { principalId: id 
 } })
    cb(null, roleMappings);
  };
  Rolemapping.remoteMethod("getRolesByUser", {
    http: {
      path: "/getRolesByUser",
      verb: "get"
    },
    accepts: [
      { arg: "userId", type: "string", http: { source: "query" } }
    ],
    returns: {
      arg: "result",
      type: "string"
    },
    description: "Cvs "
  });
 };
这是角色映射json文件:

{
  "name": "roleMapping",
  "base": "RoleMapping",
  "idInjection": true,
  "options": {
  "validateUpsert": true
},
   "properties": {},
   "validations": [],
   "relations": {
   "role": {
   "type": "belongsTo",
   "model": "role",
   "foreignKey": "roleId"
 }
 },
   "acls": [],
   "methods": {}
 }
上面的远程方法没有出现在环回API资源管理器中。

RoleMapping是一个内置的模型,它的role-mapping.js文件隐藏在node_modules/loopback中,我已经对它进行了测试,它看起来不会从common/models为自己加载js文件

看起来启动脚本是您唯一的选择。这是相同的代码,但是您的函数接收服务器对象

server/boot/get-roles-by-user.js

我还从您的远程方法中删除了cb参数,因为返回承诺的方法不需要它,只需像对任何其他函数一样返回值即可

module.exports = function(server) {
  const Rolemapping = server.models.RoleMapping;
  Rolemapping.getRolesByUser = async function (id) {
    return JSON.stringify(await Rolemapping.find({ where: { principalId: id
      } }))
  };
  Rolemapping.remoteMethod("getRolesByUser", {
    http: {
      path: "/getRolesByUser",
      verb: "get"
    },
    accepts: [
      { arg: "userId", type: "string", http: { source: "query" } }
    ],
    returns: {
      arg: "result",
      type: "string"
    },
    description: "Cvs "
  });
}