2017-11-01 9 views
1

내 프로젝트에 mysql을 설치 한 후 모델 및 마이그레이션 파일을 만드는 sequelize 명령을 사용하여 메시지 모델을 creadted했습니다. config.json 파일에서도 db 자격 증명을 받았습니다. 이제 나야. 내 DB에 레코드를 삽입하려고하지만, 여기에이 오류를 얻는 것은Message.Create가 함수가 아닙니다.


내가 명시 적으로 DB 연결을해야합니까 내 모델 파일 또는 자동 연결을 config.json 파일에서 자격 증명을 선택합니다?


모델/messages.js 여기

'use strict'; 
module.exports = (sequelize, DataTypes) => { 
var Messages = sequelize.define('Messages', { 
room: DataTypes.STRING, 
nickname: DataTypes.STRING, 
message: DataTypes.STRING, 
receiver: DataTypes.STRING 
}, { 
classMethods: { 
    associate: function(models) { 
    // associations can be defined here 
    } 
} 
}); 
return Messages; 
}; 

{ 
"development": { 
"username": "root", 
"password": "asad", 
"database": "chat", 
"host": "127.0.0.1", 
"dialect": "mysql" 
}, 
"test": { 
"username": "root", 
"password": null, 
"database": "database_test", 
"host": "127.0.0.1", 
"dialect": "mysql" 
}, 
"production": { 
"username": "root", 
"password": null, 
"database": "database_production", 
"host": "127.0.0.1", 
"dialect": "mysql" 
} 
} 

여기가 내 서버 파일입니다 config.json 파일 설정/config.json에게 있습니다 기록 저장을 위해 app.js는

var express = require('express'); 
var router = express.Router(); 
    var app = express(); 
var server = require('http').createServer(app); 
server.listen(4000); 
var Messages=require('../models/Messages.js'); 

router.post('/', function(req, res, next) { 
    var a =req.body; 

Messages.create(a).then(() => { 

    console.log('success ') 

}) 
}) 
+0

하여 오류 메시지 –

+0

무엇 Message.create 내가 DB를 concetion 명시 적 또는 설정에서 CLI 자동 후비는 자격 증명, JSON 파일을해야 다른 의심 – Asad

답변

1

메이크업 sequelize 연결 인스턴스를 제출하고 내보낼, SQL 인스턴스를 가져 환경에 따라 app.js에서

const sql = new Sequelize(config.database, config.username, config.password, { 
    host: config.host, 
    dialect: config.dialect, 
    pool: { 
    max: 5, 
    min: 0, 
    idle: 10000 
    }, 

}); 
module.export = sql; 

을 설정을 사용하여 시작하기 전에 DB를 연결하시기 바랍니다 섬기는 사람.

var express = require('express'); 
var router = express.Router(); 
var app = express(); 
var server = require('http').createServer(app); 
var sql = require(./sql); 
sql.authenticate().then(()=>{ 
    server.listen(4000); 
}); 

var Messages= sql.import('../models/Messages.js'); 

router.post('/', function(req, res, next) { 
    var a =req.body; 

Messages.create(a).then(() => { 

    console.log('success ') 

}) 
}) 
+0

되지이다 @Vikash –

+0

이있는 경우 @Asad 말해주십시오 함수 @VikashDahiya – Asad

+0

당신은 그것을 명시 적으로 만들어야합니다. 그리고 나서 당신이 app.js에서 ur 서버를 시작할 때 uld는 sql.authenticate()를 호출합니다. –