node.js - 如何将表的最大 id 值分配给 Node.js 中的变量

标签 node.js sequelize.js

我需要一个表的最大 id 并希望访问此值以插入另一个表,但我无法在回调函数之外访问它。如何在 block 外访问此值?

我正在使用 Sequelize 和 Node.js。我的代码是:

var employeeCode = 'EMP1';

var employeeCodeObj = Employee.max('id').then(function(max) {
  var maxid = max + 1;
  employeeCode = "EMP" + maxid;
  console.log(employeeCode);
}).catch(err => {
  res.send({
    msg: 'Unable to generate employee code!',
    status: 'Failure',
    response: 500,
    data: []
  });
});
console.log(employeeCode);

该表只有一行,但是当我打印此值时,它总是打印 EMP1当结果应该是 EMP2 .

最佳答案

Node.js 是异步的。

这意味着最后一个 console.log 将比 then 中的函数先执行。

max 函数中的代码将执行,其余代码将继续执行。仅当计算最大值时 then 函数才会执行,但同时 console.log 已经执行。

您将需要在 then 函数中执行需要 max employee 的代码,或者使用“async”之类的模块来帮助处理异步代码并解决回调 hell 。

查看此网站:http://callbackhell.com/ .

关于node.js - 如何将表的最大 id 值分配给 Node.js 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46216149/

相关文章:

mysql - Sequelize : Concat fields in WHERE LIKE clause

node.js - Sequelize hasMany 关联无法正常工作

mysql - 如何正确地将 uuid 转换为 BINARY(16)?

javascript - .map 函数内的异步验证

node.js - 对象未在 socket.io 中发送

json - NPM 错误解析 Json,意外 token

javascript - Pug 文件未加载 CSS

node.js - 如何在mongoDB中存储100个 parent 中的数百万个 child

node.js - 如何在 mongodb-memory-server 中设置初始数据?

javascript - sequelize.js 连续多对多关系