node.js - ได้รับข้อผิดพลาดนี้หลังจากสร้างไฟล์ ts yield User.create({ ^TypeError: ไม่สามารถอ่านคุณสมบัติของ undefined (กำลังอ่าน 'create')
ฉันได้รับข้อผิดพลาดนี้หลังจากรัน npm run build yield User.create({ ^
ข้อผิดพลาดประเภท: ไม่สามารถอ่านคุณสมบัติของค่าที่ไม่ได้กำหนด (การอ่าน 'create')
โมเดล/ดัชนี.ts
'use strict';
const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
//const process = require('process');
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';
const config = require(__dirname + '/./config/config.js')[env];
const db: any = {};
console.log(config)
let sequelize: any;
if (config.use_env_variable) {
console.log(1)
sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
console.log(2)
sequelize = new Sequelize('***', {
dialect: 'postgres',
dialectoptions: {
ssl: true
}
});
console.log(sequelize)
}
fs
.readdirSync(__dirname)
.filter((file: string) => {
return (
file.indexOf('.') !== 0 &&
file !== basename &&
file.slice(-3) === '.ts' &&
file.indexOf('.test.js') === -1
);
})
.forEach((file: any) => {
const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
db[model.name] = model;
});
Object.keys(db).forEach(modelName => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
export default db;
โมเดล/ผู้ใช้.ts
'use strict';
import {
Model, UUIDV4
} from 'sequelize';
interface UserAttributes {
id: number;
first_name: string;
last_name: string;
}
module.exports = (sequelize: any, DataTypes: any) => {
class User extends Model<UserAttributes> implements UserAttributes {
/**
* Helper method for defining associations.
* This method is not a part of Sequelize lifecycle.
* The `models/index` file will call this method automatically.
*/
id!: number;
first_name!: string;
last_name!: string;
static associate(models: any) {
// define association here
}
}
User.init({
id: {
type: DataTypes.UUID,
defaultValue: UUIDV4,
allowNull: false,
primaryKey: true
},
first_name: DataTypes.STRING,
last_name: DataTypes.STRING
}, {
sequelize,
modelName: 'User',
});
return User;
};
ดัชนี.ts
import express, { Application, Request, Response, NextFunction} from 'express';
const app: Application = express();
const calc = (a: number, b: number) => {
return a + b;
}
import db from './models';
db.sequelize.sync().
then(function() {
console.log('DB connection sucessful.');
}).catch((err: any)=> console.log('error has occured'));
db.User.create({
first_name: "lola",
last_name: "lola"
})
/* app.get('/', (req: Request, res: Response) => {
console.log(calc(2,5))
res.send('Hello122');
})
app.get('/hi', (req: Request, res: Response) => {
console.log(calc(2,5))
res.send('Hello122');
}) */
app.listen(5000, () => console.log('Server is running'));
ฉันได้ลองนำเข้าฐานข้อมูลในไฟล์ index ด้วยวิธีต่างๆ แต่ไม่ได้ผล ทุกคำแนะนำยินดีต้อนรับ ขอบคุณ