我正在尝试开始使用feathers.js和sequelize。我正在关注Chat指南,但使用的是sequelize而不是默认数据库。我正在使用本地SQL Server 2016实例,这是我的sequelize对象的样子:
const sequelize = new Sequelize('feathers_backend', null, null, {
dialect: 'mssql',
dialectModulePath: 'sequelize-msnodesqlv8',
logging: false,
dialectOptions: {
driver: 'SQL Server Native Client 11.0',
instanceName: 'MSSQLSERVER01',
trustedConnection: true,
}
});
我创建了消息API并下载邮递员HTTP示例。
我希望应用程序按照指南中的描述工作 - 即常规的CRUD行为。
POST新消息工作正常,返回预期结果。但是,一旦我执行GET,我就会收到此错误:
info:after:messages - 方法:创建 info:after:messages - 方法:创建 info:error:messages - 方法:find:[Microsoft] [SQL Server Native Client 11.0] [SQL Server] OFFSET'附近的语法不正确。 错误:SequelizeDatabaseError:[Microsoft] [SQL Server Native Client 11.0] [SQL Server] OFFSET'附近的语法不正确。 在Query.formatError(C:\ Users \ George \ Source \ Repos \ feathers-app \ node_modules \ sequelize \ lib \ dialects \ mssql \ query.js:322:12) 在Request.connection.lib.Request [作为回调](C:\ Users \ George \ Source \ Repos \ feathers-app \ node_modules \ sequelize \ lib \ dialects \ mssql \ query.js:107:25) 在Connection.removeRequest(C:\ Users \ George \ Source \ Repos \ feathers-app \ node_modules \ sequelize-msnodesqlv8 \ lib \ connection.js:173:13) at context.connection.queryRaw(C:\ Users \ George \ Source \ Repos \ feathers-app \ node_modules \ sequelize-msnodesqlv8 \ lib \ request.js:31:14) at routeStatementError(C:\ Users \ George \ Source \ Repos \ feathers-app \ node_modules \ msnodesqlv8 \ lib \ driverRead.js:20:7) 在C:\ Users \ George \ Source \ Repos \ feathers-app \ node_modules \ msnodesqlv8 \ lib \ driverRead.js:204:13 at Object.cbFreeStatement [as end](C:\ Users \ George \ Source \ Repos \ feathers-app \ node_modules \ msnodesqlv8 \ lib \ driverMgr.js:202:7)
我不明白为什么其中一个HTTP方法会好,另一个不行?注意到OFFSET语法错误,这就是生成的SQL的样子:
Executing (default): SELECT [id], [text], [createdAt], [updatedAt] FROM [messages] AS [messages] OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY;