Javascript Sequelize字符串不是函数错误,为什么?
请你帮忙。 为什么昵称对象中的字符串(150)会出现奇怪的错误Javascript Sequelize字符串不是函数错误,为什么?,javascript,node.js,sequelize.js,Javascript,Node.js,Sequelize.js,请你帮忙。 为什么昵称对象中的字符串(150)会出现奇怪的错误 const Sequelize = require('sequelize'); const devOptions = require('./../config/config').connectionConf.development; const sequelize = new Sequelize( devOptions.database, devOptions.username, devOptions.password
const Sequelize = require('sequelize');
const devOptions = require('./../config/config').connectionConf.development;
const sequelize = new Sequelize(
devOptions.database,
devOptions.username,
devOptions.password,
{
host: devOptions.host,
dialect: devOptions.dialect
}
);
const User = sequelize.define('user', {
user_id: {
primaryKey:true,
type:sequelize.BIGINT,
allowNull:false
},
nickname: {
type:sequelize.STRING(150),
unique:true,
allowNull:false
},
email: {
type:sequelize.STRING(150),
unique:true,
allowNull:false
},
user_password: {
type:sequelize.STRING(150),
unique:true,
allowNull:false
},
created_at: {
type:sequelize.Date,
created_time:sequelize.NOW,
allowNull:false
},
updated_at: {
type:sequelize.Date,
allowNull:false
}
}, {});
TypeError:sequelize.STRING不是函数
反对。(E:\Projects\JavaScript\couponsystem\src\models\schema.js:21:22)
at模块编译(内部/modules/cjs/loader.js:688:30)
在Object.Module.\u extensions..js(internal/modules/cjs/loader.js:699:10)
在Module.load(内部/modules/cjs/loader.js:598:32)
在tryModuleLoad(内部/modules/cjs/loader.js:537:12)
at Function.Module.\u load(内部/modules/cjs/loader.js:529:3)
at Module.require(内部/modules/cjs/loader.js:636:17)
根据需要(内部/modules/cjs/helpers.js:20:18)
反对。(E:\Projects\JavaScript\couponsystem\src\models\generator.js:1:78)
at模块编译(内部/modules/cjs/loader.js:688:30)
在Object.Module.\u extensions..js(internal/modules/cjs/loader.js:699:10)
在Module.load(内部/modules/cjs/loader.js:598:32)
在tryModuleLoad(内部/modules/cjs/loader.js:537:12)
at Function.Module.\u load(内部/modules/cjs/loader.js:529:3)
位于Function.Module.runMain(内部/modules/cjs/loader.js:741:12)
启动时(内部/bootstrap/node.js:285:19)
在bootstrapNodeJSCore(internal/bootstrap/node.js:739:3)
这应该行得通,有关更多信息,请阅读下面的文档
const Sequelize = require('sequelize');
const devOptions = require('./../config/config').connectionConf.development;
const sequelize = new Sequelize(
devOptions.database,
devOptions.username,
devOptions.password,
{
host: devOptions.host,
dialect: devOptions.dialect
}
);
const User = sequelize.define('user', {
user_id: {
primaryKey:true,
type:sequelize.BIGINT,
allowNull:false
},
nickname: {
type:sequelize.STRING,
unique:true,
allowNull:false
},
email: {
type:sequelize.STRING,
unique:true,
allowNull:false
},
user_password: {
type:sequelize.STRING,
unique:true,
allowNull:false
},
created_at: {
type:sequelize.Date,
created_time:sequelize.NOW,
allowNull:false
},
updated_at: {
type:sequelize.Date,
allowNull:false
}
}, {});
这应该行得通,有关更多信息,请阅读下面的文档
const Sequelize = require('sequelize');
const devOptions = require('./../config/config').connectionConf.development;
const sequelize = new Sequelize(
devOptions.database,
devOptions.username,
devOptions.password,
{
host: devOptions.host,
dialect: devOptions.dialect
}
);
const User = sequelize.define('user', {
user_id: {
primaryKey:true,
type:sequelize.BIGINT,
allowNull:false
},
nickname: {
type:sequelize.STRING,
unique:true,
allowNull:false
},
email: {
type:sequelize.STRING,
unique:true,
allowNull:false
},
user_password: {
type:sequelize.STRING,
unique:true,
allowNull:false
},
created_at: {
type:sequelize.Date,
created_time:sequelize.NOW,
allowNull:false
},
updated_at: {
type:sequelize.Date,
allowNull:false
}
}, {});
由于无法使用
sequelize
访问数据类型,我开始查看模块的主类
执行此操作时,const Sequelize=require('Sequelize')代码>您正在调用一个扩展数据类型的接口(它们也是一个接口),因此您可以毫无问题地使用BIGINT或STRING
但当您这样做时
const sequelize = new Sequelize(
devOptions.database,
devOptions.username,
devOptions.password,
{
host: devOptions.host,
dialect: devOptions.dialect
}
);
您指的是上述接口的构造函数(构造签名)。这导致sequelize
中的对象是另一个类或函数的实例,而不是对sequelize
的直接引用,这就是它们具有不同属性的原因
总之,这将是执行您请求的代码实现的正确方法
const Sequelize = require('sequelize');
const devOptions = require('./../config/config').connectionConf.development;
const sequelize = new Sequelize(
devOptions.database,
devOptions.username,
devOptions.password,
{
host: devOptions.host,
dialect: devOptions.dialect
}
);
const User = sequelize.define('user', {
user_id: {
primaryKey: true,
type: Sequelize.BIGINT,
allowNull: false
},
nickname: {
type: Sequelize.STRING(150),
unique: true,
allowNull: false
},
email: {
type: Sequelize.STRING(150),
unique: true,
allowNull: false
},
user_password: {
type: Sequelize.STRING(150),
unique: true,
allowNull: false
},
created_at: {
type: Sequelize.Date,
created_time: Sequelize.NOW,
allowNull: false
},
updated_at: {
type: Sequelize.Date,
allowNull: false
}
}, {});
接口中的构造签名不能在类中实现;它们只用于定义现有的JSAPI,这些API定义了一个“新”的
功能
由于无法使用sequelize
访问数据类型,我开始查看模块的主类
执行此操作时,const Sequelize=require('Sequelize')代码>您正在调用一个扩展数据类型的接口(它们也是一个接口),因此您可以毫无问题地使用BIGINT或STRING
但当您这样做时
const sequelize = new Sequelize(
devOptions.database,
devOptions.username,
devOptions.password,
{
host: devOptions.host,
dialect: devOptions.dialect
}
);
您指的是上述接口的构造函数(构造签名)。这导致sequelize
中的对象是另一个类或函数的实例,而不是对sequelize
的直接引用,这就是它们具有不同属性的原因
总之,这将是执行您请求的代码实现的正确方法
const Sequelize = require('sequelize');
const devOptions = require('./../config/config').connectionConf.development;
const sequelize = new Sequelize(
devOptions.database,
devOptions.username,
devOptions.password,
{
host: devOptions.host,
dialect: devOptions.dialect
}
);
const User = sequelize.define('user', {
user_id: {
primaryKey: true,
type: Sequelize.BIGINT,
allowNull: false
},
nickname: {
type: Sequelize.STRING(150),
unique: true,
allowNull: false
},
email: {
type: Sequelize.STRING(150),
unique: true,
allowNull: false
},
user_password: {
type: Sequelize.STRING(150),
unique: true,
allowNull: false
},
created_at: {
type: Sequelize.Date,
created_time: Sequelize.NOW,
allowNull: false
},
updated_at: {
type: Sequelize.Date,
allowNull: false
}
}, {});
接口中的构造签名不能在类中实现;它们只用于定义现有的JSAPI,这些API定义了一个“新”的
功能
这种语法有什么问题???类型:sequelize.STRING(150)个文档-嗯,错误非常具体。字符串不是函数。因此,要么需要错误的“序列化”。或者文档是错误的。或者输出是假的。或者更可能。“sequalize”常量是用不相关的参数启动的。@ArelSapir文档:,清楚地表明sequalize.STRING
是一个函数。正如我所说的。这可能是其中一种情况:要么需要错误的“序列化”。或者文档是错误的。或者输出是假的。或者“sequalize”常量是用错误的参数启动的。sequelize.STRING和sequelize.STRING有什么区别吗?这种语法有什么问题???类型:sequelize.STRING(150)个文档-嗯,错误非常具体。字符串不是函数。因此,要么需要错误的“序列化”。或者文档是错误的。或者输出是假的。或者更可能。“sequalize”常量是用不相关的参数启动的。@ArelSapir文档:,清楚地表明sequalize.STRING
是一个函数。正如我所说的。这可能是其中一种情况:要么需要错误的“序列化”。或者文档是错误的。或者输出是假的。或者“sequalize”常量是用错误的参数启动的。sequelize.STRING和sequelize.STRING有什么区别吗?