【问题标题】:Connect an existing MySQL db for a Node/Express app using Sequelize使用 Sequelize 为 Node/Express 应用程序连接现有的 MySQL 数据库
【发布时间】:2013-09-15 23:48:54
【问题描述】:

致力于将 RoR 完全重写为 Node/Sequelize/Express/Angular 应用程序的项目。

我已经在我的本地机器上执行了旧模式,并且可以查看数据库、表和数据。

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

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

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

  1. 这应该是我设置架构的本地 MySQL 目录吗? (假设是)
  2. 模型是否引用数据库中的表?

有关如何正确访问现有关系映射的建议很有帮助。

这是我关于 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 + '/' + )
})

【问题讨论】:

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


    【解决方案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 文件的文件系统路径

    【讨论】:

    • 这很有帮助。最终使用了更基本的导出对象模式。我的文件很长,但速度更快。你是对的。一个 npm 来做这件事会很酷。 module.exports = {用户:用户,种族:种族,种族用户:种族用户};
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 2019-09-26
    • 2022-01-16
    • 2017-07-29
    • 2016-03-16
    • 2014-11-09
    相关资源
    最近更新 更多