在SequelizeJS中存储多个模型会产生JSON
我是SequelizeJS的新手。我的问题是如何在json中存储多个模型的结果。我已经调用了两个模型在SequelizeJS中存储多个模型会产生JSON,json,node.js,sequelize.js,Json,Node.js,Sequelize.js,我是SequelizeJS的新手。我的问题是如何在json中存储多个模型的结果。我已经调用了两个模型Users和Friends,我想在JSON中获得这两个模型的结果。我试图返回res.json({“OnlineUsers”:OnlineUsers,“onlineFriends”:onlineFriends})这两个结果都会生成一个JSON,但不会得到结果 下面是我的控制器的外观 'use strict'; var models = require('../models'); var Seque
Users
和Friends
,我想在JSON中获得这两个模型的结果。我试图返回res.json({“OnlineUsers”:OnlineUsers,“onlineFriends”:onlineFriends})代码>这两个结果都会生成一个JSON,但不会得到结果
下面是我的控制器的外观
'use strict';
var models = require('../models');
var Sequelize = require('sequelize');
exports.search = function (req, res) {
if (req.body.searchType === "OnlineUsers") {
var user = new models.Users();
var onlineUsers = user.onlineUsers();
var attributes = {"id": '', "username": "", "role": ""};
var onlineUsers = models.Users.findAll({
attributes: Object.keys(attributes).concat([
[Sequelize.literal("IF(Users.lastSeen < DATE_SUB(NOW(), INTERVAL 15 MINUTE), 0, 1)"), 'isSeen'],
]),
}).then(onlineUsers => {
return onlineUsers;
});;
var onlineFriends = models.Friends.findAll({
attributes: Object.keys(attributes).concat([
[Sequelize.literal("IF(Users.lastSeen < DATE_SUB(NOW(), INTERVAL 15 MINUTE), 0, 1)"), 'isSeen'],
]),
}).then(onlineFriends => {
return onlineFriends;
});
return res.json({"OnlineUsers": onlineUsers, "onlineUsers": onlineFriends});
}
//return res.json({searchResult: "test"});
};
“严格使用”;
var models=require(“../models”);
var Sequelize=需要(“Sequelize”);
exports.search=函数(请求、恢复){
if(req.body.searchType==“OnlineUsers”){
var user=new models.Users();
var onlineUsers=user.onlineUsers();
变量属性={“id”:“”,“用户名”:“,”角色”:“};
var onlineUsers=models.Users.findAll({
属性:Object.keys(attributes).concat([
[Sequelize.literal(“如果(Users.lastSeen{
返回在线用户;
});;
var onlineFriends=models.Friends.findAll({
属性:Object.keys(attributes).concat([
[Sequelize.literal(“如果(Users.lastSeen{
网上交友;
});
返回res.json({“OnlineUsers”:OnlineUsers,“OnlineUsers”:onlineFriends});
}
//返回res.json({searchResult:“test”});
};
有谁能帮助我或指导我实现这一点吗?您必须嵌套查询,记住node.js是异步的,所以在执行第一个查询后,您将执行第二个查询,然后返回两个对象的响应。大概是这样的:
exports.search = function (req, res) {
if (req.body.searchType === "OnlineUsers") {
var user = new models.Users();
var onlineUsers = user.onlineUsers();
var attributes = {"id": '', "username": "", "role": ""};
models.Users.findAll({
attributes: Object.keys(attributes).concat([
[Sequelize.literal("IF(Users.lastSeen < DATE_SUB(NOW(), INTERVAL 15 MINUTE), 0, 1)"), 'isSeen'],
]),
}).then(onlineUsers => {
return models.Friends.findAll({
attributes: Object.keys(attributes).concat([
[Sequelize.literal("IF(Users.lastSeen < DATE_SUB(NOW(), INTERVAL 15 MINUTE), 0, 1)"), 'isSeen'],
]),
}).then(onlineFriends => {
res.json({"OnlineUsers": onlineUsers, "onlineFriends": onlineFriends});
});
});;
}
};
exports.search=函数(req,res){
if(req.body.searchType==“OnlineUsers”){
var user=new models.Users();
var onlineUsers=user.onlineUsers();
变量属性={“id”:“”,“用户名”:“,”角色”:“};
models.Users.findAll({
属性:Object.keys(attributes).concat([
[Sequelize.literal(“如果(Users.lastSeen{
返回models.Friends.findAll({
属性:Object.keys(attributes).concat([
[Sequelize.literal(“如果(Users.lastSeen{
res.json({“OnlineUsers”:OnlineUsers,“onlineFriends”:onlineFriends});
});
});;
}
};