kro*_*761 5 node.js express sequelize.js
我正在编写一个节点 API,并希望将 Sequelize 查询的结果保存在一个变量中,作为块外的普通 JavaScript 对象findAll
。我有一些有用的东西,但没有我想要的那么好。这是我所拥有的:
router.get('/', (req, res, next) => {
models.User.findAll({
attributes: ['id', 'name'],
raw: true
}).then(function (results) {
console.log(results); // Plain JavaScript object, which is good
// Do logic on results
//Return results
res.status(200).json({
results
});
});
});
Run Code Online (Sandbox Code Playgroud)
但我真的不想将我的所有逻辑都保留在then()
块中,尤其是因为我可能想在此之前或之后进行一些其他查询。我真的想要这样的东西(如果这是一件事):
router.get('/', (req, res, next) => {
var users = models.User.findAll({
attributes: ['id', 'name'],
raw: true
}).then(function (results) {
});
});
// Do logic on results
// return results
res.status(200).json({
results
});
});
Run Code Online (Sandbox Code Playgroud)
我尝试将 sequelize 查询保存在router.get()
调用下方的函数中,并在它们是 JavaScript 对象时返回结果,但这不起作用。我对 JavaScript 很陌生,所以我很感激这些建议。
好吧,如果您不想在then
块中添加逻辑代码,您也可以使用async-await
:
router.get('/', async (req, res, next) => {
var results = await models.User.findAll({
attributes: ['id', 'name'],
raw: true
});
// you've result variable available here, use it.
// Do logic on results
// return results
res.status(200).json({
results
});
});
Run Code Online (Sandbox Code Playgroud)
现在你不必在块中编写代码,你可以直接在函数中then
使用变量。results
归档时间: |
|
查看次数: |
3184 次 |
最近记录: |