[英]In a Javascript key value object, how to remove quotes from value
從遠程數據庫中,我檢索表的模式並獲取以下形式的JSON對象:
{ Id:
{ type: 'INT',
allowNull: false,
defaultValue: null,
primaryKey: false },
Prefix:
{ type: 'NVARCHAR',
allowNull: true,
defaultValue: null,
primaryKey: false },
FirstName:
{ type: 'NVARCHAR',
allowNull: true,
defaultValue: null,
primaryKey: false },
Assets:
{ type: 'INT',
allowNull: false,
defaultValue: null,
primaryKey: false },
Role:
{ type: 'NVARCHAR',
allowNull: true,
defaultValue: null,
primaryKey: false },
}
我想將每個列的type
(在此示例中,Id,前綴,名字,資產,角色)轉換為DataTypes.INTEGER
或DataTypes.STRING
形式,以便最終得到:
{ Id:
{ type: DataTypes.INTEGER,
allowNull: false,
defaultValue: null,
primaryKey: false },
Prefix:
{ type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
primaryKey: false },
FirstName:
{ type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
primaryKey: false },
Assets:
{ type: DataTypes.INTEGER,
allowNull: false,
defaultValue: null,
primaryKey: false },
Role:
{ type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
primaryKey: false },
}
請注意區別, type
值不再是字符串。
最初我嘗試以下操作:
var DataTypes = {
NVARCHAR: 'STRING',
INT: 'INTEGER',
VARCHAR: 'STRING',
DATETIME: 'DATE',
FLOAT: 'FLOAT',
NCHAR: 'STRING'
}
Object.keys(schema).forEach(function(fieldName) {
types[schema[fieldName]['type']] ? schema[fieldName]['type'] = 'DataTypes.'+types[schema[fieldName]['type']] : console.log('Could not find type: ' + schema[fieldName]['type'])
})
但隨后我會得到"DataTypes.STRING"
,而不是DataTypes.STRING
我從未使用過您在評論中提到的鏈接Sequelize ,但是快速瀏覽一下他們的文檔可以發現這是您定義新模型的方式:
const WhateverYouWant = sequelize.define('whatever', {
Id : { type: DataTypes.INTEGER, allowNull: false,
defaultValue: null, primaryKey: false},
// other columns you have...
});
看那個例子,似乎DataTypes
是一個對象,而INTEGER
是它們庫中的屬性。 因此,如果您引用他們的庫,那么您將能夠使用這些類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.