【发布时间】:2016-03-09 13:00:01
【问题描述】:
基于(Sails 文档)[http://sailsjs.org/documentation/concepts/services/creating-a-service],我可以在services 文件夹中创建一个服务:
// EmailService.js - in api/services
module.exports = {
sendInviteEmail: function(options) {
var opts = {"type":"messages","call":"send","message":
{
"subject": "YourIn!",
"from_email": "info@balderdash.co",
"from_name": "AmazingStartupApp",
"to":[
{"email": options.email, "name": options.name}
],
"text": "Dear "+options.name+",\nYou're in the Beta! Click <insert link> to verify your account"
}
};
myEmailSendingLibrary.send(opts);
}
};
所以选项从控制器接收参数,但我不知道为什么这应该起作用,因为 myEmailSendingLibrary 根本没有定义。
另外,我想在服务中使用 ORM(水线)实现查找方法。根据 Sails 文档,必须类似于:
User.find({name:'Finn'}).exec(function (err, usersNamedFinn){
if (err) {
return res.negotiate(err);
}
sails.log('Wow, there are %d users named Finn. Check it out:', usersNamedFinn.length, usersNamedFinn);
return res.json(usersNamedFinn);
});
当我尝试加入所有人时,问题就来了。如果我创建名为DesignerService.js 的以下服务:
module.exports = {
findFormIds: function(id) {
Designer.find("56dedc1734112e8c1fb078aa").exec(function (err, records) {
//}).exec(function (err, finn){
if (err) {
return res.negotiate(err);
}
if (!records) {
return res.notFound('Could not find any form.');
}
//sails.log('Found "%s"', records.fullName);
myFindFormIds.json(records);
//return res.json(records);
});
}
};
这不起作用,因为 res 没有创建。如果我尝试声明一个函数以便像这样访问 res 变量:
module.exports = function(req,res){
findFormIds: function(id) {
Designer.find("56dedc1734112e8c1fb078aa").exec(function (err, records) {
//}).exec(function (err, finn){
if (err) {
return res.negotiate(err);
}
if (!records) {
return res.notFound('Could not find any form.');
}
//sails.log('Found "%s"', records.fullName);
myFindFormIds.json(records);
//return res.json(records);
});
}
};
我在 findFormIds 行中有一个关于意外 ( 的错误。
那么我如何访问res var 以发回查询结果?
谢谢!!
【问题讨论】:
-
您需要将
res对象从您的控制器操作传递给服务