Tag: sequelize.js

无法用sequelize连接到SQL Azure数据库,但本地主机上的SQL Server工作正常

我已经用MongoDB部署了Heroku的几个站点,但是这是我第一次使用SQL创build站点并尝试部署到Azure,所以我可能会丢失一些明显的东西。 我一直在使用Node.js(SQL Server数据库)和Sequelize(作为ORM)开发我的开发机器上的网站。 一切工作正常,但是当我试图部署到连接string的Azure我无法连接到SQL Azure数据库。 我可以使用SQL Server Management Studio连接到Azure上的空数据库,所以我确定我的连接信息是正确的。 当我尝试部署到Azure时,我尝试使用Azure提供的连接string: var Sql = require('sequelize'); var sql = new Sql('Driver={SQL Server Native Client 11.0};Server=tcp:server.database.windows.net,1433;Database=databasename;Uid=UserName@server;Pwd={password};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;'); 当我尝试连接这个string时,我得到的错误是: C:\Users\username\Documents\GitHub\event-site\node_modules\sequelize\lib\sequelize.js:110 options.dialect = urlParts.protocol.replace(/:$/, ''); ^ TypeError: Cannot read property 'replace' of null at new Sequelize (C:\Users\v-mibowe\Documents\GitHub\event-site\node_modules\sequelize\lib\sequelize.js:110:40) at Object.<anonymous> (C:\Users\v-mibowe\Documents\GitHub\event-site\routes\db-routes.js:68:11) at Module._compile (module.js:435:26) at Object.Module._extensions..js (module.js:442:10) at Module.load (module.js:356:32) at […]

Sequelize:如何使用左外连接对连接表执行WHERE条件

我的数据库模型如下: 一名员工驾驶一辆或零辆车 一辆车可以由一名或多名员工驾驶 车辆有一个模型types,告诉我们它的燃料types等。 我想继续把我们所有的员工带到不驾驶车辆的地方,或者如果他们这样做,那么车辆不是柴油的。 那么VehicleID为null或者Vehicle.VehicleModel.IsDiesel = false 我目前的代码如下: var employee = sequelize.define('employee', { ID: Sequelize.INTEGER, VehicleID: Sequelize.INTEGER }); var vehicle = sequelize.define('vehicle', { ID: Sequelize.INTEGER, ModelID: Sequelize.INTEGER }); var vehicleModel = sequelize.define('vehicleModel', { ID: Sequelize.INTEGER, IsDiesel: Sequelize.BOOLEAN }); employee.belongsTo(vehicle); vehicle.belongsTo(vehicleModel); 如果我运行以下: options.include = [{ model: model.Vehicle, attributes: ['ID', 'ModelID'], include: [ { model: model.VehicleModel, […]

使用BCrypt和Sequelize模型

我试图用我的sequelize模型使用bcrypt-nodejs包,并试图按照教程将哈希合并到我的模型中,但是我在generateHash得到一个错误。 我似乎无法弄清楚这个问题。 有没有更好的方法来joinbcrypt? 错误: /Users/user/Desktop/Projects/node/app/app/models/user.js:26 User.methods.generateHash = function(password) { ^ TypeError: Cannot set property 'generateHash' of undefined at module.exports (/Users/user/Desktop/Projects/node/app/app/models/user.js:26:27) at Sequelize.import (/Users/user/Desktop/Projects/node/app/node_modules/sequelize/lib/sequelize.js:641:30) 模型: var bcrypt = require("bcrypt-nodejs"); module.exports = function(sequelize, DataTypes) { var User = sequelize.define('users', { annotation_id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true }, firstName: { type: DataTypes.DATE, field: 'first_name' }, lastName: […]

如何用外键创build带有sequelize或sequelize-cli的连接表

我正在为两种types创build模型和迁移,玩家和团队有许多关系。 我使用sequelize模型:创build,但不看如何指定外键或连接表。 sequelize model:create –name Player –attributes "name:string" sequelize model:create –name Team –attributes "name:string" 模型创build后,我添加关联。 玩家: Player.belongsToMany(models.Team, { through: 'PlayerTeam', foreignKey: 'playerId', otherKey: 'teamId' }); 团队: Team.belongsToMany(models.Player, { through: 'PlayerTeam', foreignKey: 'teamId', otherKey: 'playerId' }); 然后迁移与运行 sequelize db:migrate 有玩家和团队的表,但数据库中没有连接表(也不是外键)。 如何创build外键和连接表? 有没有关于如何做到这一点的权威指南?

为Node.js添加后缀:ER_NO_SUCH_TABLE

我是新来的sequelize和Node.js。 我编码testingsequelize,但错误发生“ER_NO_SUCH_TABLE:表'db.node_tests'不存在” 错误非常简单。 但是,我想从“ node_test ”表中获取数据。 我认为续集是附加“性”的。 有我的源代码。 var Sequelize = require('sequelize'); var sequelize = new Sequelize('db', 'user', 'pass'); var nodeTest = sequelize.define('node_test', { uid: Sequelize.INTEGER , val: Sequelize.STRING} ); nodeTest.find({where:{uid:'1'}}) .success(function(tbl){ console.log(tbl); }); 我已经创build了表“node_test”,并使用mysql客户端插入数据。 我误解了用法吗?

防止在node.js应用程序中使用sequelize放置数据库

首先我使用node.js和sequelize ORM和postgre SQL。 我有两个简单的问题: 每次我重新运行我的节点应用程序sequelize正在删除和创build数据库中的所有表。 如何防止这样做(我不希望我的数据库中的logging被删除)? 我试图设置我的NODE_ENVtesting,但没有帮助。 续集迁移如何知道它停止的地方(哪个迁移已经执行,哪个不迁移)。 例如,当我在Grails框架中使用数据库迁移时,它会自动在数据库中创build表,其中保留了在重新运行应用程序之前执行的所有迁移时间戳,并查看该表并知道哪些迁移已完成,哪些不是。 使用node / sequelize时我没有看到任何表,所以它是如何工作的? 🙂 谢谢,伊万

Node.js / Sequelize.js / Express.js – 如何插入到多对多的关联? (同步/asynchronous?)

我有两个模型(个人,电子邮件),并试图使用Sequelize命令插入创build的“Individual_Email”表。 虽然Sequelize正在创build所需的表,但在尝试从该表添加/获取/设置时会返回以下错误:“Object [object promise]'没有方法'addEmail'”。 我错过了什么? Sequelize文档说如果模型是用户和项目,“这将添加方法getUsers,setUsers,addUsers到项目和getProjects,setProjects和addProject到用户。 这使我相信(看许诺),我很可能误解了如何使用Node的asynchronousfunction。 我已经尝试了插入的同步和asynchronous版本,都返回上面相同的消息。 续集文档: http ://docs.sequelizejs.com/en/latest/docs/associations/ 码: 路线/ index.js var express = require('express'); var router = express.Router(); var models = require('../models'); /* GET home page. */ router.get('/', function(req, res, next) { 'use strict'; var tIndividual, tEmail; tIndividual = models.Individual.create({ name: "Test" }); tEmail = models.Email.create({ address: "test@gmail.com" }); console.log(tEmail); res.render('index', […]

Sequelize – 自引用有很多关系

我正在用Mysql使用Sequelize。 我有一张桌子: 项目 包含字段: {ID,名称,价格} 我想在自己的项目中build立一种自我关系。 目标能够做Item.subItems并获得属于该项目的所有子项目的列表。 并请告诉我如何纳入新模型 包括:[{model:SubItem}] …当我提取查询。 我已经尝试了很多关系的select: Item.hasMany(Item,{through:SubItem,as:'subItems'}); Item.hasMany(项目); 谢谢您的帮助!

如何防止Sequelize使用Postgres为主键插入NULL

我已经在postgresql 9中创build了一个表 create table stillbirth(id serial primary key, state varchar(100), count int not null, year int not null); 试图在node.js上用sequelize 1.4.1版本编写一个示例。 将上表映射为 var StillBirth = sequelize.define('stillbirth', { id: {type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true}, state: Sequelize.STRING, year: Sequelize.INTEGER, count: Sequelize.INTEGER }, {timestamps: false, freezeTableName: true}); 现在当我尝试创build死胎的一个新的实例并保存它时,我得到错误。 / **新build实例创build代码** / StillBirth .build({state: objs[j].state, year: objs[j].year, count: objs[j].count}) […]

当在子数组中使用“where”和“in”时,会产生错误

这是我的模型定义: var Tag = sequelize.define('Tag', { name: Sequelize.STRING }); var Event = sequelize.define('Event', { name: Sequelize.STRING, }); Event.hasMany(Tag, {as: 'tags', through: 'event_tags', foreignKey: 'eventId'}); Tag.hasMany(Event, {as: 'events', through: 'event_tags', foreignKey: 'tagId'}); 换句话说就是:有事件和标签。 事件标有许多标签。 我试图运行这个查询: Event .findAndCountAll({ include: [{model: Tag, as: 'tags'}], where: {'tags.id': {in: [1,2,3,4]}}, order: order, limit: pageSize, offset: pageSize * (page – 1), […]