node.js - 想问下sequelize怎么同步查询啊?因为要查比较多的内容

浏览:16日期:2022-09-24

问题描述

问题解答

回答1:

findeOne返回的是一个promise, 你上面的代码执行有用???

const [sysnotice, sysactivity] = await Promise.all([db.sys_news.findOne(), db.sysactivity.findOne()]);res.render('index', { sysnotice: sysnotice, sysactivity:sysactivity});

如果不用await,就用下面的code

Promise.all([db.sys_news.findOne(), db.sysactivity.findOne()]).then(result => { const [sysnotice, sysactivity] = result; res.render('index', { sysnotice: sysnotice, sysactivity:sysactivity }); }).catch(error => console.error(error));

如果数组很多的话,利用其它的方法返回一个数据,不要一个一个手动的array里面

回答2:

可以用bluebird的map方法

回答3:

ES6

采用co模块

const co = require(’co’);co(function *(){ let sysnotice = yield db.sys_news.findOne(); let sysactivity = yield db.sysactivity.findOne(); res.render('index', {sysnotice: sysnotice,sysactivity:sysactivity });})

ES5采用bluebird模块

var Promise = require(’bluebird’);Promise.all([db.sys_news.findOne(), db.sysactivity.findOne()]).then(function(results){ res.render('index', {sysnotice: results[0],sysactivity:results[1] });})

相关文章: