如何在运行时在环回中创建REST端点和远程方法而不重新启动节点?

时间:2016-02-03 15:09:56

标签: api rest runtime loopbackjs strongloop

我们已经使用启动脚本在Loopback中的代码中成功创建了REST远程方法,这使得我们可以完全消除JSON模式文件。但是,我们的最终目标是能够在运行时随时启动创建新的REST端点和远程方法。在下面的示例中,应通过调用/ api / example / createNewMethod创建新端点('newEndPoint'),但不会在REST API中公开“newMethod”。这是代码:

// **************
// Initialize 'createNewMethod' in a boot script. (THIS IS WORKING)
// **************
model.createNewMethod = function createNewMethod(data, callback) {

    // **************
    // Initialize 'newMethod' @ runtime by calling createNewMethod
    // **************

    console.log("Initializing 'newMethod'...");

    // This is called by calling /api/example/newMethod
    model.newMethod = function newMethod(data, callback) {

        // THIS IS NOT WORKING
        console.log("'newMethod' works!")

        // Return from newMethod()
        callback({return: true});
    }    

    model.remoteMethod(
        'newMethod',
        {
            http: { verb: 'get' },
            returns: [
                { arg: 'eventinfo', type: 'data' },
            ]
        }
    );

    // Return from createNewMethod()
    callback({return: true});    
}

model.remoteMethod(
    'createNewMethod',
    {
        http: { verb: 'get' },
        returns: [
            { arg: 'eventinfo', type: 'data' }
        ]
    }
);

1 个答案:

答案 0 :(得分:0)

此问题已得到解决。我们可以允许用户添加新表或向现有表添加新列,而无需重新启动节点,只需重新创建端点,通过Loopback REST端点公开更改。 See