반응형
TypeError: 정의되지 않은(mariaDB, ExpressJs) 속성 'findAll'을 읽을 수 없습니다.
TypeError: 정의되지 않은 속성 'findAll'을 읽을 수 없습니다.
findAll
함수는 오류를 만들지만,Connection
성공했습니다.
그리고 데이터베이스 또한 이름으로 생성됩니다.managers
.
- app.js
- 모델들
- index.js
- 마리아야.
- manager.model.js
- 통
- www.js
models/index.js
const { Sequelize } = require('sequelize');
const manager = new Sequelize({
dialect: 'mariadb',
host: '127.0.0.1',
port: '13306',
username: 'xxx',
password: 'xxx',
database: 'test',
timezone: 'Asia/Seoul'
});
require('./maria/manager.model')(manager);
module.exports=manager;
models/ maria/ manager.model.js
const { DataTypes } = require('sequelize');
module.exports = (sequelize) => {
sequelize.define('manager', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: DataTypes.INTEGER
},
name: {
allowNull: false,
type: DataTypes.STRING,
}
}, {timestamps: true }).sync({force:false});
};
app.js
const express = require('express');
const app = express();
const db = require('./models');
console.log(`Checking database connection...`);
// It works!
db.authenticate().then(()=>{
console.log('Database connection OK!');
});
// It makes error!
const find_test = db.manager.findAll();
console.log(find_test);
무엇보다도 당신의 몸을 담고 있는 것은manager
변수 ? 당신의manager
variable에 연결 sequelize가 포함되어 있습니다.당신의 목적은 테이블을 요청하는 것입니다.manager
하지만 변수를 이용해서는 안 됩니다그는 테이블 명세가 없고 데이터베이스 연결만 포함하고 있기 때문입니다.
const { DataTypes } = require('sequelize');
module.exports = (sequelize) => {
return sequelize.define('manager', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: DataTypes.INTEGER
},
name: {
allowNull: false,
type: DataTypes.STRING,
}
}, {timestamps: true });
};
이 파일에서는 테이블의 정의를 반환해야 합니다.
const { Sequelize } = require('sequelize');
const manager = new Sequelize({
dialect: 'mariadb',
host: '127.0.0.1',
port: '13306',
username: 'xxx',
password: 'xxx',
database: 'test',
timezone: 'Asia/Seoul'
});
const myTable = require('./maria/manager.model')(manager);
module.exports= {
manager, myTable
};
그리고 이 파일에서는 리턴 값을 변수에 저장해야 합니다.수출합니다.
const express = require('express');
const app = express();
const { manager, myTable }= require('./models');
console.log(`Checking database connection...`);
// It works!
manager.authenticate().then(()=>{
console.log('Database connection OK!');
});
const find_test = myTable.findAll();
console.log(find_test);
다음 파일에서 마지막으로 내보낸 새 변수를 가져오십시오! 그리고 Enjoy!
- app.js
- 후속작으로 삼다
- 모델들
- manager.model.js
- index.js
- 모델들
app.js
const maria = require('./sequelize');
const { models } = require('./sequelize');
console.log(`Checking database connection...`);
maria.authenticate()
.then(()=>{
console.log('Database connection OK!');
});
const test = models.manager.findOne()
sequelize/index.js
const { Sequelize } = require('sequelize');
const maria = new Sequelize({
dialect: 'mariadb',
host: '127.0.0.1',
port: '13306',
username: 'xxxx',
password: 'xxxx',
database: 'test',
timezone: 'Asia/Seoul'
});
require('./models/manager.model')(maria)
module.exports=maria;
언급URL : https://stackoverflow.com/questions/63256698/typeerror-cannot-read-property-findall-of-undefined-mariadb-expressjs
반응형
'programing' 카테고리의 다른 글
두 테이블 이상의 조건에서 최대 절전 모드로 대량 삽입 (0) | 2023.11.05 |
---|---|
MERGE 테이블, 일치 시 아무것도 수행하지 않음 (0) | 2023.11.05 |
재현 가능한 좋은 Apache Spark 예제를 만드는 방법 (0) | 2023.11.05 |
Wordpress SlideDeck2 플러그인 Role Scoper 플러그인과 Confilct (0) | 2023.11.05 |
!중요한것이 성능에 안좋은가요? (0) | 2023.11.05 |