javascript - Sails JS - 如何使用关联 Controller 的特定模型属性

标签 javascript node.js model controller sails.js

我正在学习 Javascript、Node 和 Sails,并且有一个我在其他地方找不到答案的基本新手(我认为)问题。

在 Controller 中,我试图访问特定的模型属性,然后创建一个数组,其中包含用于 View 的每个单独条目。虽然我可以在我的菜单/索引 View 中访问我的模型中的记录,但我似乎无法直接在模型中使用任何特定属性。

这是有问题的 Controller 代码:

var MenuController = module.exports = {

manager: function(req, res) {
var userId = req.session.user.id;

sails.log("Searching for foods for user: "+ userId);
Menu.find({ where: { userId: { equals: userId }}}).exec(function(err, records) {
    if(records && records.length == 0) {
      sails.log("No foods found for user: " + userId);
      sails.log(err);
      return res.view("menu/index");
    } else {
          var foodCategories = records.food_category;
          sails.log(foodCategories);
          var array = foodCategories.split(',');
          var foodCatArray = [];
          for (i = 0; i < array.length; i++) {
            foodCatArray.push(array[i].toUpperCase());
            var uniqueCats = foodCatArray.filter(function (item, i, ar) {
              return ar.indexOf(item) === i;
            });
            var sortedCats = uniqueCats.sort();
            sails.log(sortedCats);
          }
          return res.view("menu/index", {foods: records, sortedCats: sortedCats});
        }
      });
},

这是有问题的模型:

var Menu =  module.exports = {
attributes: {
userId: {
  required: true,
  type: 'integer',
  min: 1
},
food_category: {
  type: "string",
  required: false,
  min: 1,
  max: 200
},
food_name: {
  type: "string",
  required: true,
  min: 1,
  max: 200
},
food_cost: {
  type: "string",
  required: true,
  min: 1,
  max: 10
},
food_description: {
  type: "string",
  required: true
},
img_path: {
  type: "string",
  required: true
},
img_name: {
  type: "string",
  required: true
},
img_name_crypt: {
  type: "string",
  required: true
}
}
};

现在这一行:

var foodCategories = records.food_category; 

当我加载菜单/索引 View 时,在我的 Sails 日志中创建了一个未定义的值。有人可以指出我正确的方向吗?

最佳答案

您的 records 变量很可能是对象数组。

将代码移到for循环中并像使用它一样

records[i].food_category

你不需要var数组... 在 for 循环中使用 records.lenght 代替

关于javascript - Sails JS - 如何使用关联 Controller 的特定模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30645948/

相关文章:

javascript - $authWithPassword 不是 AngularFire 2.x 中的函数

php - 如何使用php获取(调用)动态生成的变量值以保存在(mysql)数据库中

node.js - 在这种情况下使用gulp和直接打开index.html有什么区别?

node.js - 平均堆栈文件上传

c++ - 未找到 : FeedInputs: unable to find feed output TensorFlow

database - Entity Framework 6 相同的类冲突

javascript - Angular 2子组件接收祖先事件

javascript - 基于跟踪代码管理器事件的动态 Google Analytics 事件

c++ - ofstream 不创建文件(Node.js 插件)

grails - grails 索引页的最佳实践