使用Sequelize连接Node / Express应用程序的现有MySQL数据库

时间:2013-09-11 19:44:40

标签: mysql ruby-on-rails node.js database-schema sequelize.js

使用项目完全重写RoR到Node / Sequelize / Express / Angular应用程序。

我在本地计算机上执行了旧模式,可以查看数据库,表和数据。

在我的节点代码中,我需要连接现有的数据库。

我正在关注本教程:http://redotheweb.com/2013/02/20/sequelize-the-javascript-orm-in-practice.html

当使用sequelize.import并将其指向目录时,我的问题就出现了。

  1. 这应该是我设置架构的本地MySQL目录吗? (假设是)
  2. 模型是否参考数据库中的表格?
  3. 有关如何正确访问现有关系映射的建议很有帮助。

    这是我在Stack上的第一个问题,提前谢谢你。

    var express = require('express');
    var http = require('http');
    var path = require('path');
    var config = require('./config/config');
    
    var Sequelize = require('sequelize');
    
    var app = express();
    
    var db = new Sequelize('somedb', 'root', 'password');
    
    var models = [
      'users'
    ];
    
    models.forEach(function(model){
      module.exports[model] = sequelize.import(__dirname + '/' + )
    })
    

1 个答案:

答案 0 :(得分:1)

Sequelize.import无法导入您当前的SQL架构。您需要编写javascript代码来定义模型:

// in models/users.js
module.exports = function(sequelize, DataTypes) {
    return sequelize.define('User', {
        first_name: DataTypes.STRING,
        last_name: DataTypes.STRING,
    });
};

假设您发布的脚本是根目录,并且在同一目录中有一个名为models的文件夹,其中包含文件users.js,则该脚本将起作用。传递给.import的路径是定义模型的javascript文件的文件系统路径