ค้นหาเว็บไซต์

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 ด้วยวิธีต่างๆ แต่ไม่ได้ผล ทุกคำแนะนำยินดีต้อนรับ ขอบคุณ