[英]I can't get my export to work for my Sequelize model
I'm creating an e-commerce site for a school project and I'm trying to connect my GoogleStrategy to my sqlite database so I can store the users in a table.我正在为一个学校项目创建一个电子商务网站,我正在尝试将我的 GoogleStrategy 连接到我的 sqlite 数据库,以便我可以将用户存储在一个表中。 But for some reason I get an error when calling the variable in my passport-setup file.
但由于某种原因,在我的护照设置文件中调用变量时出现错误。
The error occurs when i try to call my exported User variable from user-model.js -> passport-setup.js当我尝试从 user-model.js -> passport-setup.js 调用我导出的用户变量时发生错误
user-model.js:用户模型.js:
const { Sequelize, DataTypes } = require('sequelize');
const sequelize = new Sequelize('./database.sqlite');
const User = sequelize.define('User', {
googleId: {
type:DataTypes.STRING,
allowNull: false
},
displayName: {
type: DataTypes.STRING,
allowNull: false
},
email: {
type: DataTypes.STRING,
allowNull: false
},
photo: {
type: DataTypes.STRING,
allowNull: false
},
});
console.log(User === sequelize.models.User); //true
module.exports = User;
passport-setup.js:护照setup.js:
const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth20');
const keys = require ('./keys');
const User = require('./user-model');
passport.use(
new GoogleStrategy ({
//options for the strategy
callbackURL:'/redirect/',
clientID: keys.google.clientID,
clientSecret: keys.google.clientSecret,
}, (accessToken, refreshToken, profile, done) => {
console.log('passport callback function fired');
console.log(profile)
})
)
sequelize connection in index.js: index.js 中的续集连接:
//initialize sequelize
const { Sequelize } = require('sequelize');
const sequelize = new Sequelize({
dialect: 'sqlite',
storage: './database.sqlite'
});
//check sequelize connection
try {
sequelize.authenticate();
console.log('Connection has been established successfully.');
} catch (error) {
console.error('Unable to connect to the database:', error);
}
Error:错误:
[nodemon] starting `node index.js`
C:\Users\karwa\Studier\År 3\GIK2PG (Projektbaserad systemutveckling)\Sneakers-Project\node_modules\sequelize\dist\lib\sequelize.js:56
options.dialect = urlParts.protocol.replace(/:$/, "");
^
TypeError: Cannot read property 'replace' of null
at new Sequelize (C:\Users\karwa\Studier\År 3\GIK2PG (Projektbaserad systemutveckling)\Sneakers-Project\node_modules\sequelize\dist\lib\sequelize.js:56:43)
at Object.<anonymous> (C:\Users\karwa\Studier\År 3\GIK2PG (Projektbaserad systemutveckling)\Sneakers-Project\passport-setup.js:24:19)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
at Module.require (internal/modules/cjs/loader.js:974:19)
at require (internal/modules/cjs/helpers.js:93:18)
at Object.<anonymous> (C:\Users\karwa\Studier\År 3\GIK2PG (Projektbaserad systemutveckling)\Sneakers-Project\index.js:10:23)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
[nodemon] app crashed - waiting for file changes before starting...
I'm following this tutorial but i'm trying to implement sqlite3 and sequelize instead of mongodb and mongoose.我正在学习本教程,但我正在尝试实施 sqlite3 和 sequelize 而不是 mongodb 和 mongoose。
You need to export sequelize
instance in index.js
and use it in user-model.js
instead of creating one more Sequelize instance there:您需要在
index.js
中导出sequelize
实例并在user-model.js
中使用它,而不是在那里再创建一个 Sequelize 实例:
const sequelize = require('./index');
const User = sequelize.define('User', {
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.