user1853919
user1853919

Reputation: 21

error while using sails.js sails-mssql adapter

I am trying to connect to a SQL Server database from within my sails.js app. I'm using sergeibelov/sails-mssql to connect to a remote Azure instance.

I've set up the database info in config/adapters.js.

When I try to connect using valid credentials, I get the following error:

error: Hook failed to load: orm (Error: Incorrect syntax near the keyword 'user'.) error: Error encountered while loading Sails core! error: Error: Incorrect syntax near the keyword 'user'. at Request.userCallback (TestApp/node_modules/sails-mssql/node_modules/mssql/lib/tedious.js:352:23) at Request.callback (TestApp/node_modules/sails-mssql/node_modules/mssql/node_modules/tedious/lib/request.js:24:27) at Connection.STATE.SENT_CLIENT_REQUEST.events.message (TestApp/node_modules/sails-mssql/node_modules/mssql/node_modules/tedious/lib/connection.js:198:29) at Connection.dispatchEvent (TestApp/node_modules/sails-mssql/node_modules/mssql/node_modules/tedious/lib/connection.js:465:59) at Connection.c.dispatchEvent (TestApp/node_modules/sails-mssql/node_modules/mssql/lib/tedious.js:206:26) at MessageIO. (TestApp/node_modules/sails-mssql/node_modules/mssql/node_modules/tedious/lib/connection.js:419:20) at MessageIO.EventEmitter.emit (events.js:92:17) at MessageIO.eventData (TestApp/node_modules/sails-mssql/node_modules/mssql/node_modules/tedious/lib/message-io.js:59:21) at Socket. (TestApp/node_modules/sails-mssql/node_modules/mssql/node_modules/tedious/lib/message-io.js:3:59) at Socket.EventEmitter.emit (events.js:95:17) at Socket. (_stream_readable.js:746:14) at Socket.EventEmitter.emit (events.js:92:17) at emitReadable_ (_stream_readable.js:408:10) at emitReadable (_stream_readable.js:404:5) at readableAddChunk (_stream_readable.js:165:9) at Socket.Readable.push (_stream_readable.js:127:10) at TCP.onread (net.js:526:21)

When I change to an invalid user, I get a different error:

error: Hook failed to load: orm (Error: Login failed; one or more errorMessage events should have been emitted) error: Error encountered while loading Sails core! error: Error: Login failed; one or more errorMessage events should have been emitted at TestApp/node_modules/sails-mssql/node_modules/mssql/lib/tedious.js:238:19 at TestApp/node_modules/sails-mssql/node_modules/mssql/node_modules/generic-pool/lib/generic-pool.js:271:11 at Connection.connect (TestApp/node_modules/sails-mssql/node_modules/mssql/lib/tedious.js:215:24) at Connection.g (events.js:180:16) at Connection.EventEmitter.emit (events.js:95:17) at Connection.processLogin7Response (TestApp/node_modules/sails-mssql/node_modules/mssql/node_modules/tedious/lib/connection.js:592:12) at Connection.STATE.SENT_LOGIN7_WITH_STANDARD_LOGIN.events.message (TestApp/node_modules/sails-mssql/node_modules/mssql/node_modules/tedious/lib/connection.js:153:23) at Connection.dispatchEvent (TestApp/node_modules/sails-mssql/node_modules/mssql/node_modules/tedious/lib/connection.js:465:59) at Connection.c.dispatchEvent (TestApp/node_modules/sails-mssql/node_modules/mssql/lib/tedious.js:206:26) at MessageIO. (TestApp/node_modules/sails-mssql/node_modules/mssql/node_modules/tedious/lib/connection.js:419:20) at MessageIO.EventEmitter.emit (events.js:92:17) at MessageIO.eventData (TestApp/node_modules/sails-mssql/node_modules/mssql/node_modules/tedious/lib/message-io.js:59:21) at Socket. (TestApp/node_modules/sails-mssql/node_modules/mssql/node_modules/tedious/lib/message-io.js:3:59) at Socket.EventEmitter.emit (events.js:95:17) at Socket. (_stream_readable.js:746:14) at Socket.EventEmitter.emit (events.js:92:17) at emitReadable_ (_stream_readable.js:408:10) at emitReadable (_stream_readable.js:404:5) at readableAddChunk (_stream_readable.js:165:9) at Socket.Readable.push (_stream_readable.js:127:10) at TCP.onread (net.js:526:21)

Given the system doesn't throw an error the "Incorrect syntax near the keyword 'user'" when I use an invalid user, I think the first error message is a red herring.

Any thoughts on how to fix this?

Upvotes: 1

Views: 848

Answers (1)

user1853919
user1853919

Reputation: 21

Solved it.

Turns out user didn't have anything to do with the user logging in to the database (the 'user' setting in config/adapters.js).

I had created a model and controller called user (sails generate user). After connecting to the database, sails was trying to add the 'createdAt' and 'updatedAt' fields to the user table. But the database user I was connecting with did not have write permissions, so it was throwing an error.

Once I created the correct columns in the database, everything worked fine.

Upvotes: 1

Related Questions