AngularJs Module init中使用sequelize创建数据库表

来源:互联网 发布:知乎 原谅我红尘颠倒 编辑:程序博客网 时间:2024/06/08 10:18

一、 问题:sequelize 自动创建数据库表?

二、 分析:在Module init function里面,借助sequelize工具实现创建自己的表 ,

1.首先,需要在server/models/LZM.server.model.js 中  创建表模型;如下所示:

'use strict';module.exports = function (sequelize, DataTypes) {  var lzm = sequelize.define('LZM',    {      id: {        type: DataTypes.INTEGER,        autoIncrement: true,        primaryKey: true,        allowNull: false      },      title: {        type: DataTypes.STRING,        defaultValue: '',        comment: '李'      },      content: {        type: DataTypes.TEXT,        comment: '张'      },      user_id: {        type: DataTypes.INTEGER,        comment: 'foreignKey user(id)'      }    },    {      comment: 'analysi table',      indexes: [        {          //在外键上建立索引-蒙          fields: ['user_id']        }      ],      classMethods: {        associate: function (models) {          this.belongsTo(models.User,            {foreignKey: 'user_id'});        }      }    }  );  return lzm;};
2.

modules/example/server/config/example.server.config.js  

'use strict';/** * Module dependencies */var path = require('path'),  config = require(path.resolve('./config/config')),  logger = require(path.resolve('./config/lib/logger')),  chalk = require('chalk');/** * Module init function. */module.exports = function (app, sequelize) {  //创建自己的表  var LZM = sequelize.model('LZM');  LZM.sync({    force: true,    loging: true  })  .then(function () {    logger.info(chalk.green('Database table LZM synchronized OK!'));  }).catch(function (err) {    logger.error('Database table LZM synchronized error: ', err);    throw err;  });};
3.测试插入数据        server/controller/lzm.server.controller.js   
exports.listLzmCases = function (req, res) {  var LZM = sequelize.model('LZM');  LZM.build({'title': '123'})
  .save()
  .catch(function (err) {    logger.error('LZM list error:', err);    return res.status(422).send(err);  });
};
/** * 原始查询 详情,处理完成的内容 * 暂未启用 */exports.dispatchByIDforwardcases = function (req, res, next, id) {  var create_user = req.user.id;  var LZM= sequelize.model('LZM');  var ZXF= sequelize.model('ZXF');  sequelize.query('select j.rec_id,j.act_content,t.* ' +    ' from j_rec_act j left join LZM t on (j.rec_id=t.id)' +    ' where j.act_userid = ' + create_user + ' and j.rec_id = '    + id + ' and j.OLD_STATE_ID=6 and j.NEW_STATE_ID=7',    {type: sequelize.QueryTypes.SELECT})    .then(function (torecInfo) {      return res.jsonp(torecInfo);    }).catch(function (err) {      logger.error('Torec list error:', err);      return res.status(422).send(err);    });};

原创粉丝点击