2017-10-18 109 views
0

问题是以下几点: 我有一个在MySql中设计的数据库和模式,我试图将自动导入到LoopBack中的我的api基础中,以便与它们一起工作。 我已阅读以下帮助: http://loopback.io/doc/en/lb2/Discovering-models-from-relational-databases.html#additional-discovery-functions 但它不起作用。LoopBack:从MySql导入模型

我都试过了,改变库存数据记录器(在我的数据库表的名称。

var loopback = require('loopback'); 
var ds = loopback.createDataSource('mysql', { 
"host": "localhost", 
"port": 3306, 
"database": "maintenancetooldb", 
"username": "root", 
"password": "Password_4567" 
}); 

// Discover and build models from INVENTORY table 
ds.discoverAndBuildModels('datalogger', {visited: {}, associations: true}, 
function (err, models) { 
console.log(JSON.stringify(inv, null, 2)); 
// Now we have a list of models keyed by the model name 
// Find the first record from the inventory 
models.datalogger.findOne({}, function (err, inv) { 
if(err) { 
    console.error(err); 
    console.log(JSON.stringify(inv, null, 2)); 
    return; 
} 
console.log("\nInventory: ", inv); 

// Navigate to the product model 
// Assumes inventory table has a foreign key relationship to product table 
inv.product(function (err, prod) { 
    console.log("\nProduct: ", prod); 
    console.log("\n ------------- "); 
}); 
}); 
}); 

说实话,我迷路了,昨天我用sequelize-AUTO的第一次,但今天要求已经改变。

在此先感谢您的帮助。

回答

0

你可以试试这个

var _ = require('lodash'); 
var path = require('path'); 
var fs = require('fs'); 
var loopback = require('loopback'); 
var outputPath = '/home/rahul/Loopback/Helloworld/common/models'; 
var loopback = require('loopback'); 
var ds = loopback.createDataSource('mysql', { 
    "host": "localhost", 
    "port": 3306, 
    "database": "XXX", 
    "username": "XXX", 
    "password": "XXX" 
}); 
ds.discoverModelDefinitions({ schema: 'My-schema' }, function (err, models) { 

    var count = models.length; 

    _.each(models, function(model){ 
    //console.log(model.name); 
    ds.discoverSchema(model.name, { associations: false }, function(err, schema){ // instead of model.name just mention your table name 
     //console.log("GG0"); 
     //console.log("GG"+schema.name); 
     var outputName = outputPath + '/' +schema.name + '.json'; 
     fs.writeFile(outputName, JSON.stringify(schema, null, 2), function(err) { 
     if(err) { 
      console.log(err); 
     } else { 
      console.log("JSON saved to " + outputName); 
     } 
     }); 
     fs.writeFile(outputPath + '/' + schema.name + '.js', schema.name, function(err) { 
     if (err) throw err; 
     console.log('Created ' + schema.name + '.json file'); 
     }); 
     count = count - 1; 
     if (count === 0) { 
     console.log("DONE!", count); 
     ds.disconnect(); 
     return; 
     } 
    }); 
    }) 
}); 
+0

谢谢....非常有帮助 –