SAILSJS 的动态模型属性
Dynamic model attribute with SAILSJS
我的用例需要我在 Sails.Js 项目中使用动态模型属性,但我的所有方法都失败了。首先,我尝试从 model2 调用 model1 方法,但它不起作用。我也尝试使用全局变量,但这也失败了,因为全局变量是在应用程序加载后设置的,最后我从 model2 调用了 model1Controller,但它仍然无法正常工作。
这是我的 model2Controller
中的方法
getbyTable:function(req,res){
let field = Field.find({fTable:req.param('tableName')});
field.exec(function(err, response) {
if(err) {
res.status(500);
return res.view('500', {data: err});
}
//res.json(response);
return response;
});
},
这是我的模型2
'use strict';
const fieldController = require('../controllers/Model1Controller');
const donnees = fieldController.getbyTable('person');
module.exports={
}
当 运行 时,它作为 req.param 不是函数的错误而触发。
需要帮忙!!!谢谢
这看起来是一种有趣的组织方式 - 我很好奇,如果没有一成不变的模型属性,项目能取得多大的成功。
我可以在您的代码中看到一些特定的错误,也许看到它们会帮助您继续前进。
- 从您的 model2 中,您使用字符串参数调用
getbyTable('person')
- 但所有控制器方法实际上都旨在具有 reqest/response 个参数(如定义 getbyTable(req, res)
中所述)。直接调用控制器方法有点不寻常 - 如果你曾经这样做过,我希望传递来自其他控制器方法的请求和响应。
- 在
getbyTable
中,您尝试 return 响应,但响应仅在 exec
回调中定义。响应将是从您的数据库中获取的一组对象 - 如果这是您需要的,您不能直接 return 它们,因为数据库调用是异步的。
- 您的控制器可能应该在所有逻辑分支中使用
res
执行某些操作,例如 res.json
、res.send
等
很难确切地看出您想要达到的目标,所以如果您能解释一下目标,我可能会得到一些更相关的建议。现在,我可以说您可能想考虑将一些代码放在服务而不是控制器中。创建文件 /api/services/MyService.js
并使用它来导出可以从您的 model2 调用的方法(您可以像控制器一样需要该服务)。严格控制控制器方法来处理请求。
祝你好运。
我的用例需要我在 Sails.Js 项目中使用动态模型属性,但我的所有方法都失败了。首先,我尝试从 model2 调用 model1 方法,但它不起作用。我也尝试使用全局变量,但这也失败了,因为全局变量是在应用程序加载后设置的,最后我从 model2 调用了 model1Controller,但它仍然无法正常工作。 这是我的 model2Controller
中的方法 getbyTable:function(req,res){
let field = Field.find({fTable:req.param('tableName')});
field.exec(function(err, response) {
if(err) {
res.status(500);
return res.view('500', {data: err});
}
//res.json(response);
return response;
});
},
这是我的模型2
'use strict';
const fieldController = require('../controllers/Model1Controller');
const donnees = fieldController.getbyTable('person');
module.exports={
}
当 运行 时,它作为 req.param 不是函数的错误而触发。 需要帮忙!!!谢谢
这看起来是一种有趣的组织方式 - 我很好奇,如果没有一成不变的模型属性,项目能取得多大的成功。
我可以在您的代码中看到一些特定的错误,也许看到它们会帮助您继续前进。
- 从您的 model2 中,您使用字符串参数调用
getbyTable('person')
- 但所有控制器方法实际上都旨在具有 reqest/response 个参数(如定义getbyTable(req, res)
中所述)。直接调用控制器方法有点不寻常 - 如果你曾经这样做过,我希望传递来自其他控制器方法的请求和响应。 - 在
getbyTable
中,您尝试 return 响应,但响应仅在exec
回调中定义。响应将是从您的数据库中获取的一组对象 - 如果这是您需要的,您不能直接 return 它们,因为数据库调用是异步的。 - 您的控制器可能应该在所有逻辑分支中使用
res
执行某些操作,例如res.json
、res.send
等
很难确切地看出您想要达到的目标,所以如果您能解释一下目标,我可能会得到一些更相关的建议。现在,我可以说您可能想考虑将一些代码放在服务而不是控制器中。创建文件 /api/services/MyService.js
并使用它来导出可以从您的 model2 调用的方法(您可以像控制器一样需要该服务)。严格控制控制器方法来处理请求。
祝你好运。