2017-04-18 35 views
1

我是Feathers的绝对初学者,但它看起来很有希望,所以我试图查看我是否可以将它连接到我的SQL Server数据库,但我被卡住了远。FeathersJS:续集和SQL Server的基本设置

我跟着docs和使用feathers generate service,然后编辑我的连接字符串,但后来当我在src/models/sqlserver.model.jsnpm start它抛出和错误:

==> const sqlserver = sequelizeClient.define('sqlserver', {... 
TypeError: Cannot read property 'define' of undefined 

发电机编辑default.json并添加所有这些文件:

/src 
    mssql.js 
    /services 
    index.js 
    sqlserver/ 
     sqlserver.filters.js 
     sqlserver.hooks.js 
     sqlserver.service.js 

但是文档没有提及它们中的任何一个(至少不是我所理解的),或者我需要改变的东西。我认为生成器是最简单的方法来设置它,但它让我感到困惑,因为文档似乎忽略了生成器的使用,并且所有内容都在app.js中。

希望任何人都可以提供任何指导,只需在Feathers中设置基本的SQL Server服务。

回答

2

这确实是一个应该在feathers-cli v2.0.4中修复的错误(请参阅pull request here)。您可以使用npm update feathers-cli -g进行更新并生成新的应用程序。

或者在那里说

app.set('mssqlClient', sequelize); 

app.set('sequelizeClient', sequelize); 

这也将要解决这个问题,你可以改变你现有的src/sequelize.js文件。

+0

这确实让我在添加一个sequelize服务(名为'sql')后启动服务器,所以谢谢你,这回答了问题的第一部分。但是我正在做“聊天”指南并试图使用这个服务而不是NeDB消息服务,但是碰到'localhost:3030/sql'只会给出一个500错误。 API文档似乎包含了app.js中的所有内容,所以我仍然不确定如何实际测试数据库连接。其他人是否会为此付出努力,或者是否对羽毛球新兴的JS专业人士只是知道如何在没有指示的情况下将所有这些都搞定了? – redOctober13

+0

你为什么试图击中'/ sql'端点?如果你创建了一个'messages'服务,它仍然是'localhost:3030/messages' – Daff

+0

,这正是我在生成器要求提供名称时命名服务的原因。 我认为部分问题是,当我在'mssql.js':'const {port,hostname,username,password} = connection;'这行之后注销连接细节时,它说用户名和密码未定义。 'url.parse()'函数返回一个带有用户名和密码的'auth'属性的对象,但没有这些名字的道具。 – redOctober13