【发布时间】:2015-08-28 05:54:43
【问题描述】:
已经为另一个项目设置了一个开发数据库。我正在尝试创建一个sails.js 服务器来连接到这个数据库并充当一个RESTful API。我还使用SQL Workbench 和下面的配置文件连接到数据库并验证我的查询语句。在该工具上,我可以发送select top 10 * from advisor 之类的查询并获得我期望的响应数据。
我在sails.js 中的连接配置似乎没问题,因为我能够启动服务器。我已经得到了简单的静态动作,比如hi: function (req, res) { return res.send("Hi there!"); }。但是,我不知道该怎么做才能从sails 服务的数据库中获得响应。我的目标(此时)是让http://localhost:1337/advisor 为select top 10 * from advisor 的结果返回 JSON。
我最初尝试使用新生成的模型。然后,我尝试向模型文件添加属性。然后,我尝试将自己的代码添加到控制器中。在每种情况下,浏览器都没有收到响应。最后,我测试了/advisor/list 来运行我自己的代码,它看起来好像从未执行过 query() 回调。如果这是第一个问题,我已经运行 npm install sails-sqlserver 并仔细检查了我的主机、数据库、用户名和密码是否与 Workbench 中使用的相同。
connections.js
sqlserver: {
adapter: 'sails-sqlserver',
user: 'myusername',
password: 'mypassword',
host: 'mysubdomain.mydomain.net:1433',
database: 'frontofficedev'
}
models.js
module.exports.models = {
connection: 'sqlserver',
migrate: 'safe'
};
api\models\Advisor.js
module.exports = {
attributes: {
advcode: 'string',
advname: 'string',
'adv-default': 'boolean',
"user-id": 'string',
"pc-code": 'string',
"adv-tag": 'string',
"is-group": 'boolean',
"trade-grouping": 'string',
AdvisorId: 'int',
orgcode: 'string',
BranchId: 'int',
OrdPrnBranchId: 'int',
zdec1: 'float',
zdec2: 'float',
zchar1: 'string',
zchar2: 'string',
zchar3: 'string',
zchar4: 'string',
AdvStatus: 'string'
}
};
api\控制器
module.exports = {
hi: function (req, res) {
return res.send("Hi there!");
},
list: function (req, res) {
var myQuery = "select TOP 10 * from advisor";
sails.log.debug("Query :", myQuery);
console.log(Advisor);
Advisor.query(myQuery, function (err, advisors){
console.log(advisors);
console.log(err);
if(err || !advisors.rows.length){
return res.json({"status": 0, "error": err});
}
else{
return res.json(advisors);
}
});
}
};
关于我做错了什么有什么想法吗? JDBC 是否会导致问题?提前致谢。
【问题讨论】:
-
this 是朝着正确方向迈出的一步吗?
标签: sql-server node.js jdbc sails.js waterline