0

I'm using typescript to run a sequelize database, and any time I run npm run build, I keep getting this error. I don't know what to do because I have checked online and the solutions don't work for me. All I'm trying to do is to connect to the database using sequelize database.

TypeError: require(...) is not a function
    at C:\Users\Boss\Desktop\Microservice Api\models\index.ts:24:54
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (C:\Users\Boss\Desktop\Microservice Api\models\index.ts:23:4)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Module._compile (C:\Users\Boss\Desktop\Microservice Api\node_modules\source-map-support\source-map-support.js:568:25)
    at Module.m._compile (C:\Users\Boss\AppData\Local\Temp\ts-node-dev-hook-515725030064434.js:69:33)
    at Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
    at require.extensions..jsx.require.extensions..js (C:\Users\Boss\AppData\Local\Temp\ts-node-dev-hook-515725030064434.js:114:20)   
    at require.extensions.<computed> (C:\Users\Boss\AppData\Local\Temp\ts-node-dev-hook-515725030064434.js:71:20)
    at Object.nodeDevHook [as .ts] (C:\Users\Boss\Desktop\Microservice Api\node_modules\ts-node-dev\lib\hook.js:63:13)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (C:\Users\Boss\Desktop\Microservice Api\server.ts:4:1)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Module._compile (C:\Users\Boss\Desktop\Microservice Api\node_modules\source-map-support\source-map-support.js:568:25)
    at Module.m._compile (C:\Users\Boss\AppData\Local\Temp\ts-node-dev-hook-515725030064434.js:69:33)
    at Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
    at require.extensions..jsx.require.extensions..js (C:\Users\Boss\AppData\Local\Temp\ts-node-dev-hook-515725030064434.js:114:20)   
    at require.extensions.<computed> (C:\Users\Boss\AppData\Local\Temp\ts-node-dev-hook-515725030064434.js:71:20)
    at Object.nodeDevHook [as .ts] (C:\Users\Boss\Desktop\Microservice Api\node_modules\ts-node-dev\lib\hook.js:63:13)
[ERROR] 19:32:13 TypeError: require(...) is not a function

This is my index.ts file where i keep getting the error 'use strict';

const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';
const config = require(__dirname + '/../config/config.js')[env];
const db: any = {};

let sequelize: any;
if (config.use_env_variable) {
  sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
  sequelize = new Sequelize(config.database, config.username, config.password, config);
}

fs
  .readdirSync(__dirname)
  .filter((file: string) => {
    return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.ts');
  })
  .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;

db.account = require('./account')(sequelize, Sequelize)
db.phone_number = require('./phone_number')(sequelize,Sequelize)
db.account.hasMany(db.phone_number, {
  foreignKey:'account_id'
})
db.phone_number.belongsTo(db.account)

export default db;

The error is coming from my index.ts folder. i don't know why I'm getting this error.

.forEach((file: any) => {
    const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes) ;
    db[model.name] = model;
  });
  • 2
    can you please share the line of code on which this error pops out ? – ext Jun 05 '22 at 06:43
  • 1
    https://stackoverflow.com/questions/33007878/nodejs-typeerror-require-is-not-a-function – W.S. Jun 05 '22 at 07:45
  • Does this answer your question? [NodeJs : TypeError: require(...) is not a function](https://stackoverflow.com/questions/33007878/nodejs-typeerror-require-is-not-a-function) – Tyler2P Jun 05 '22 at 09:12

0 Answers0