我正在尝试创建一个REST API,该API应该连接到mysql数据库中的现有表并返回与我们发送的参数相对应的数据。

实际上,nodejs和strongloop对我来说是新手,这是第一次与他们合作。我已经按照他们的文档并在mysql中创建了一个表,我正在运行如下文件

我已经按照以下github文档中的命令创建模型,属性等

https://github.com/strongloop/loopback-example-database

创建测试数据.js

var server = require('./server');
var dataSource = server.dataSources.accountDB;
var Account = server.models.account;
var accounts = [
    { email: '[email protected]',
      created: new Date(),
      modified: new Date()
    }, {
      email: '[email protected]',
      created: new Date(),
      modified: new Date()
    } ];

var count = accounts.length;
dataSource.automigrate('account', function(er) {
  if (er) throw er;
  accounts.forEach(function(account) {
    Account.create(account, function(er, result) {
      if (er) return;
      console.log('Record created:', result);
      count--;
      if(count === 0) {
        console.log('done');
        dataSource.disconnect();
      }
    });
  });
});


这会自动在我的数据库中创建表和记录,我不希望这样。

实际上,我已经有一个不同的表,我想与strongloop连接。

我完全一无所知,任何帮助将不胜感激。

最佳答案

我发现这试图做同样的事情。我已将其修复,以使其正常结束。对我来说很棒。
原始:https://gist.github.com/serkanserttop/64fc2d4465fb154066db#file-discover-js

var path = require('path');
var app = require(path.resolve(__dirname, '../server'));
var fs = require('fs');
var loopback = require('loopback');
var app_dir = './';
require('node-babel')();
var dataSource = app.dataSources.accountDs;
var db = 'myDB',
    owner = 'root';

function capitaliseFirstLetter(string) {
    return string.charAt(0)
        .toUpperCase() + string.slice(1);
}

function jsFileString(model_name) {
    return '' + 'module.exports = function(' + capitaliseFirstLetter(model_name) + ') {\n' + '\t\n' + '};';
}

function autoGenerateModelFiles() {
    dataSource.discoverModelDefinitions({
        schema: db
    }, function(err, models) {
        var count = models.length;
        console.log(models.length);
        models.forEach(function(model) {
            dataSource.discoverSchema(model.name, {
                associations: true
            }, function(err, schema) {
                if (schema.options.mysql.schema !== db) {
                    console.log('options.mysql.schema !== db', schema);
                }
                fs.writeFile(app_dir + 'common/models/' + model.name + '.json', JSON.stringify(
                    schema, null, '  '), function(err) {
                    if (err) throw err;
                    console.log('Saved ' + model.name);
                });
                fs.writeFile(app_dir + 'common/models/' + model.name + '.js', jsFileString(
                    model.name), function(err) {
                    if (err) throw err;
                    console.log('Created ' + model.name + '.json file');
                });
                count = count - 1;
                if (len === 0) {
                    console.log("DONE!", count);
                    dataSource.disconnect();
                    return;
                }
            });
        });
    });
}

07-24 18:51