如何用npm安装sequelize

 我来答
恒我梦2254
2017-05-31 · TA获得超过127个赞
知道答主
回答量:264
采纳率:33%
帮助的人:65.5万
展开全部
安装非简单:
$ npm install --save co
$ npm install --save sequelize
$ npm install --save mysql

代码模板:
var Sequelize = require('sequelize');
var co = require('co');

co(function* () {
// code here
}).catch(function(e) {
console.log(e);
});

基本Sequelize操作都返Promiseco框架面直接进行yield非便
建立数据库连接
var sequelize = new Sequelize(
'sample', // 数据库名
'root', // 用户名
'zuki', // 用户密码
{
'dialect': 'mysql', // 数据库使用mysql
'host': 'localhost', // 数据库服务器ip
'port': 3306, // 数据库服务器端口
'define': {
// 字段划线(_)割(默认驼峰命名风格)
'underscored': true
}
}
);

定义单张表
Sequelize:
var User = sequelize.define(
// 默认表名(般写单数)自转换复数形式
// 值作访问模型相关模型属性名所建议用写形式
'user',
// 字段定义(主键、created_at、updated_at默认包含用特殊定义)
{
'emp_id': {
'type': Sequelize.CHAR(10), // 字段类型
'allowNull': false, // 否允许NULL
'unique': true // 字段否UNIQUE
},
'nick': {
'type': Sequelize.CHAR(10),
'allowNull': false
},
'department': {
'type': Sequelize.STRING(64),
'allowNull': true
}
}
);

SQL:
CREATE TABLE IF NOT EXISTS `users` (
`id` INTEGER NOT NULL auto_increment ,
`emp_id` CHAR(10) NOT NULL UNIQUE,
`nick` CHAR(10) NOT NULL,
`department` VARCHAR(64),
`created_at` DATETIME NOT NULL,
`updated_at` DATETIME NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;

几点说明:
建表SQL自执行意思主调用sync候类似:User.sync({force: true});(加force:true先删掉表再建表)我先定义表结构再定义Sequelize模型用sync两者定义阶段没关系直我真始操作模型才触及表操作我要尽量保证模型表同步(借助些migration工具)自建表功能风险使用需谨慎
所数据类型请参考文档数据类型
模型定义虚拟属性、类、实例请参考文档:模型定义
其些特殊定义所示:

var User = sequelize.define(
'user',
{
'emp_id': {
'type': Sequelize.CHAR(10), // 字段类型
'allowNull': false, // 否允许NULL
'unique': true // 字段否UNIQUE
},
'nick': {
'type': Sequelize.CHAR(10),
'allowNull': false
},
'department': {
'type': Sequelize.STRING(64),
'allowNull': true
}
},
{
// 自定义表名
'freezeTableName': true,
'tableName': 'xyz_users',

// 否需要增加createdAt、updatedAt、deletedAt字段
'timestamps': true,

// 需要createdAt字段
'createdAt': false,

// updatedAt字段改名
'updatedAt': 'utime'

// deletedAt字段改名
// 同需要设置paranoidtrue(种模式删除数据进行物理删除设置deletedAt前间
'deletedAt': 'dtime',
'paranoid': true
}
);
U
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式