Dynamic 带SAILSJS的动态模型属性
我的用例需要我在Sails.Js项目中使用动态模型属性,而我的所有方法都失败了。首先,我尝试从model2调用model1方法,但它不起作用。我还尝试使用全局变量,但这也失败了,因为全局变量是在应用程序加载后设置的,最后我从model2调用了model1Controller,但它仍然不起作用。 这是我的Model2控制器中的方法Dynamic 带SAILSJS的动态模型属性,dynamic,model,sails.js,Dynamic,Model,Sails.js,我的用例需要我在Sails.Js项目中使用动态模型属性,而我的所有方法都失败了。首先,我尝试从model2调用model1方法,但它不起作用。我还尝试使用全局变量,但这也失败了,因为全局变量是在应用程序加载后设置的,最后我从model2调用了model1Controller,但它仍然不起作用。 这是我的Model2控制器中的方法 getbyTable:function(req,res){ let field = Field.find({fTable:req.param('tab
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不是一个函数,它作为错误激发。
需要帮助!!!谢谢。这看起来是一种很有趣的组织方式——我很想知道,如果没有固定的模型属性,项目会有多成功 我可以在你的代码中看到一些特定的错误,也许看到它们会帮助你前进
getbyTable('person')
,但所有控制器方法实际上都有reqest/response参数(如定义getbyTable(req,res))
。直接调用控制器方法有点不寻常——如果您曾经这样做过,我希望传递来自其他控制器方法的请求和响应getbyTable
中,您尝试返回响应,但响应仅在exec
回调中定义。响应将是从数据库中获取的对象数组-如果您需要,则无法直接返回,因为数据库调用是异步的res
,例如res.json
,res.send
,等等你很难准确地看到你想要达到的目标,所以也许你能解释一下这个目标,我可以有一些更相关的建议。现在,我可以说,你可能想考虑把一些代码放在一个服务内而不是一个控制器中。创建文件<代码> /API/Services /MyService。JS<代码>,并使用它导出一个方法。从model2调用(您可以像控制器一样需要服务)。严格保留控制器方法以处理请求
祝你好运。这看起来是一种有趣的组织方式——我很好奇,如果没有固定的模型属性,一个项目会有多成功 我可以在你的代码中看到一些特定的错误,也许看到它们会帮助你前进
getbyTable('person')
,但所有控制器方法实际上都有reqest/response参数(如定义getbyTable(req,res))
。直接调用控制器方法有点不寻常——如果您曾经这样做过,我希望传递来自其他控制器方法的请求和响应getbyTable
中,您尝试返回响应,但响应仅在exec
回调中定义。响应将是从数据库中获取的对象数组-如果您需要,则无法直接返回,因为数据库调用是异步的res
,例如res.json
,res.send
,等等你很难准确地看到你想要达到的目标,所以也许你能解释一下这个目标,我可以有一些更相关的建议。现在,我可以说,你可能想考虑把一些代码放在一个服务内而不是一个控制器中。创建文件<代码> /API/Services /MyService。JS<代码>,并使用它导出一个方法。从model2调用(您可以像控制器一样需要服务)。严格保留控制器方法以处理请求
祝你好运。谢谢你的回答,我将对你的建议进行修改。我想做的是:我有一个字段表,其中包含数据库中的所有表属性,因此,我不想逐个指定模型属性,而是希望从字段表中提取tableName=我的表名的所有记录。我明白了-如果我理解,当应用程序“提升”时,您将从每个模型的表中加载字段。这可能会起作用。我将尝试创建一个
字段服务
,并在每个模型中调用它以获取所需的字段。如果在定义其他模型时使用字段
模型导致某种问题,我不会感到惊讶(此时可能尚未定义Field
)-您可能需要查看底层数据库,并更直接地使用它来获取字段-可能需要底层数据库驱动程序(例如require('mongodb'))
或其他直接的方法。谢谢您的回答,我将在您的建议中应用更改。我尝试做的是:我有一个字段表,其中包含数据库中的所有表属性,因此,我不想逐个指定模型属性,而是希望从字段表中获取tableName=我的表名的所有记录。我明白了-如果请理解,当应用程序“提升”时,您将从每个模型的表中加载字段。这可能行得通。我会尝试创建一个字段服务
,并在每个模型中调用该服务,以获取所需的字段。如果在定义其他模型时使用字段
模型导致某种问题(可能此时尚未定义字段
),我不会感到惊讶-您可能需要研究如何获取基础数据库,并更直接地使用它来获取字段-可能需要基础数据库驱动程序(例如require('mongodb')
或直接使用。