我是sails.js的新手,当我试图通过制作一个简单的网络应用程序来学习它时,我遇到了一个问题。我的应用程序是关于班级管理。我的模型有3个表:学生,课程和列表。学生表保存有关学生的信息,课程保存有关课程的信息。 list.table保存有关哪个学生在课程中的信息及其标记,以及他们在本课程中缺席的日期。我使用res.view(),它适用于任何需要一个数组的视图。但是,当我尝试编写需要来自2个模型的信息的函数:学生和课程时,res.view()没有帮助(或者我不知道要正确地做到)
module.exports = {
'new': function(req, res, next) {
Course.find(function foundCourses (err, courses) {
if (err) return next(err);
res.view({courses: courses});
});
/* Student.find(function foundStudents (err, students) {
if (err) return next(err);
res.view({
students: students
});
}); */
},
//more other code here
};
在那里,我想发送两个数组进行查看,但我不知道如何。如果我喜欢的话,Sails.js只允许我发送一个数组。请帮我 。非常感谢你!
答案 0 :(得分:0)
您无法两次致电res.view
。您需要先收集所有数据,然后将其发送给查看。
2种方法:
module.exports = {
'new': function(req, res, next) {
var foundCourses = function (err, courses) {
if (err) return next(err);
Student.find(function foundStudents (err, students) {
if (err) return next(err);
res.view({
courses: courses,
students: students
});
});
});
Course.find(foundCourses);
},
//more other code here
};
或者您可以使用async.parallel
module.exports = {
'new': function(req, res, next) {
var dataCallback = function (err, data) {
if (err) return next(err);
var courses = data[0];
var students = data[1];
res.view({
courses: courses,
students: students
});
};
async.parallel([
function(callback) {
Course.find(callback);
},
function(callback) {
Student.find(callback);
}
],dataCallback);
},
};