使用ES6模板字符串查询sql数据库
问题描述:
这是我的代码。 首先,我定义的用户表使用ES6模板字符串查询sql数据库
'use strict';
const db = require('../db');
const DataTypes = db.Sequelize;
module.exports = db.define('user', {
firstName: {
type: DataTypes.STRING,
allowNull: false
},
lastName: {
type: DataTypes.STRING,
allowNull: false
},
number1: {
type: DataTypes.STRING
},
number2: {
type: DataTypes.STRING
}
})
在这里,我想通过一个数组来更新数字1和数字2,节省所有的数字
var arr = [1,2]
User.findAll(req.body)
.then(users => {
for(let i=0; i<arr.length; i++){
users.update({
'number'+ (i+1): '2',
})
}
})
因此,这给我一个语法错误,这意味着sequelize不认识到这部分'number'+ (i+1)
。
如果我使用像这样的模板字符串number${i+1}
,它仍然无法工作。
但是当我尝试“number1”,它的工作原理! 为什么?我该如何解决这个问题?
答
这不是Sequelize的问题,这是您的JavaScript语法的问题(因此语法错误)。
为了获得传递到users.update
的对象的“动态”或“计算”键,您需要使用[]
代替computed property names。
users.update({
[`number${i+1}`]: '2',
})
它的工作原理!谢谢 – Paul