Tag: orm

sails.js – 如何在模型钩子beforeCreate中获取会话数据

我想更新模型的字段“所有者”。 所有者需要从包含当前login的用户并创build模型的会话中获取。 我想要这样的东西: Model = { attributes: { }, beforeCreate(values,next) { var owner_user_id = req.session.user_id; values.owner = owner_user_id; next(); } }

Sails.js中的密码确认和外部模型validation

也许有一天我一直在玩Sails。 我试图围绕在Sails.js中进行大量validation的最佳方式进行讨论。 这是情景: Registration Form: Username: _______________ E-Mail: _______________ Password: _______________ Confirm: _______________ 用户input: 一个正确的电子邮件 一个已经存在的用户名 两个密码不匹配 期望的结果: Username: _______________ x Already taken E-Mail: _______________ ✓ Password: _______________ ✓ Confirm: _______________ x Does not match 要求,几个要点: 用户input的每一个方面都会收到所有的错误信息 (不仅仅是第一个)。 他们不是模糊的 (“用户名已被占用”或“用户名必须至less有4个字母”比“无效的用户名”更好) 内置的模型validation显然不会负责检查匹配的密码确认(SRP) 我认为我需要做的是: UserController的: create: function(req, res) { try { // use a UserManager-Service to keep […]

sequelize bulkCreate()返回主键的NULL值

我正在使用节点编写rest,作为ORM for mySQL的后缀。 我正在使用bulkCreate函数来批量创buildlogging。 但是作为响应,它为主键值返回null 。 模型 sequelize.define('category', { cat_id:{ type:DataTypes.INTEGER, field:'cat_id', primaryKey: true, autoIncrement: true, unique:true }, cat_name:{ type: DataTypes.STRING, field: 'cat_name', defaultValue:null } }); 批量创build操作: var data = [ { 'cat_name':'fashion' }, { 'cat_name':'food' } ]; orm.models.category.bulkCreate(data) .then(function(response){ res.json(response); }) .catch(function(error){ res.json(error); }) 回应: [ { "cat_id": null, "cat_name": "fashion", "created_at": "2016-01-29T07:39:50.000Z", "updated_at": […]

续集复合外键

我有一个数据库与下表: CREATE TABLE IF NOT EXISTS `app_user` ( `user_id` INT NOT NULL, `user_name` VARCHAR(45) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE = InnoDB; CREATE TABLE IF NOT EXISTS `user_folder` ( `user_id` INT NOT NULL, `document_id` INT NOT NULL, PRIMARY KEY (`user_id`, `document_id`), CONSTRAINT `fk_user_document_user` FOREIGN KEY (`user_id`) REFERENCES `zinc`.`app_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE) […]

续集迁移失败(postgres)

我正在尝试使用postgresql与我的节点应用程序使用sequelize。 但是我不能使它工作。 当我运行sequelize -m我得到这个输出: Loaded configuration file "config/config.json". Using environment "development". Running migrations… 20130916100313-create-table-usuarios.js Completed in 21ms events.js:74 throw TypeError('Uncaught, unspecified "error" event.'); ^ TypeError: Uncaught, unspecified "error" event. at TypeError (<anonymous>) at EventEmitter.emit (events.js:74:15) at null.<anonymous> (/home/alejo/workspace/cloudlogger/api/node_modules/sequelize/lib/migrator.js:95:44) at EventEmitter.emit (events.js:98:17) at module.exports.finish (/home/alejo/workspace/cloudlogger/api/node_modules/sequelize/lib/query-chainer.js:138:30) at exec (/home/alejo/workspace/cloudlogger/api/node_modules/sequelize/lib/query-chainer.js:92:16) at onError (/home/alejo/workspace/cloudlogger/api/node_modules/sequelize/lib/query-chainer.js:72:11) at EventEmitter.emit (events.js:95:17) at /home/alejo/workspace/cloudlogger/api/node_modules/sequelize/lib/migration.js:65:19 […]

ORM for postgresql / node.js

Node.js社区非常活跃。 postgresql / ORM至less有几个库。 现在 – 2012年3月 ,我正在寻找一个足够成熟,生产准备好和mongoose类似的产品。 请分享,如果你有任何真实的经验与他们。 是的,我见过这个问题,还有其他十几个人。

sails.js + waterline一对多模型关联,删除Many时应该发生什么?

我和老师(一)和孩子(老师)之间有一对多的关系。 如果我做: Teacher.destroy(teacherId).exec(function(err){}); 孩子们不会自动移除。 这是一个错误,或者我应该手动删除它们? 如果这不是一个错误,不删除孩子的解释是什么?

续订关联 – 请使用承诺风格

我试图join3个表在一起的Products , Suppliers和Categories ,然后获得行与SupplierID = 13 。 我已经阅读了如何实现多对多的关联 ,并解释如何关联0:M 。 DB型号: 码: var Sequelize = require('sequelize') var sequelize = new Sequelize('northwind', 'nodejs', 'nodejs', {dialect: 'mysql',}) var Project = require('sequelize-import')(__dirname + '/models', sequelize, { exclude: ['index.js'] }); Project.Suppliers.hasMany(Project.Products, {foreignKey: 'SupplierID'}); Project.Products.belongsTo(Project.Suppliers, {foreignKey: 'SupplierID'}); Project.Categories.hasMany(Project.Products, {foreignKey: 'CategoryID'}); Project.Products.belongsTo(Project.Categories, {foreignKey: 'CategoryID'}); Project.Products .find({ where: { SupplierID: 13 }, […]

无法使用Sequelize将Schema(postgresql)中的模型关联起来

我正在尝试使用Postgresql(9.3)的Sequelize(1.7)并尝试使用模式。 我在数据库中创build了外部模式,但在我的模型中使用它们。 当我试图做模型关联时,Sequelize抱怨这个关系不存在。 当我重新定义模型使用PostgreSQL的默认“公共”模式时,它工作正常。 这里是testing用例的模型定义和代码 var Promise = require("bluebird"); var Sequelize = require("sequelize"); var _ = require('lodash-node'); var schemaName ="test_schema"; var sequelize = new Sequelize( c.database,c.username, c.password,{dialect :'postgres', port:'5432',schema:schemaName}); var User =sequelize.define('User',{ id:{ type: Sequelize.INTEGER,primaryKey:true, autoIncrement:true}, name:{type:Sequelize.TEXT,allowNull:false}, nick_name:{type:Sequelize.TEXT,allowNull:true}, date_of_joining:{type:Sequelize.DATE,allowNull:false,defaultValue:Sequelize.NOW} }, { tableName:"user", underscored:true, timestamps:false } ); var Task = sequelize.define( 'Task', { id:{ type: Sequelize.INTEGER,primaryKey:true, […]

Javascript node.js ORM,遵循数据映射器模式

我一直在使用ORM的活动logging和数据映射器实现,足以知道在我的大型项目中使用活动logging实现的ORM的问题。 现在我正在考虑将我的一个项目迁移到node.js,并试图find现在正在使用的类似工具。 经过研究,我没有发现任何遵循数据映射器模式的node.js ORM。 他们都是积极的logging。 也许我错过了一些东西,你可以告诉我有一个很好的stream行ORM的node.js不遵循活动的logging模式? 我看过的图书馆: http://docs.sequelizejs.com/ https://github.com/dresende/node-orm2 http://bookshelfjs.org/ 一些其他的