Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SequelizeJS中存储多个模型会产生JSON_Json_Node.js_Sequelize.js - Fatal编程技术网

在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

我是SequelizeJS的新手。我的问题是如何在json中存储多个模型的结果。我已经调用了两个模型
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});
});
});;   
}
};