Как решить SequelizeConnectionRefusedError с помощью nodejs - PullRequest
0 голосов
/ 14 октября 2019
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
const methodOverride = require('method-override');
const model = require("./models/index.js");

model.sequelize.sync().then(()=>{
  console.log("Success DB connect");
}).catch(err =>{
  console.log("Fail to connect");
  console.log(err);
});


var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var boardRouter = require('./routes/board');



var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
//app.engine('html',require('ejs').renderFile);
app.set('view engine', 'ejs'); //안되면 html로 바꾸기

app.use(logger('dev'));
app.use(express.json());
app.use(methodOverride('_method'));
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'views')));

app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/board', boardRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

Каждый раз, когда я запускаю этот код, возникает ошибка.

ConnectionRefusedError [SequelizeConnectionRefusedError]: connect ECONNREFUSED 10.0.0.1:3306

Я могу сделать это на локальном хосте, но если я пытаюсь связать его с моим сайтом, доступ запрещен. Даже если я предоставлю пользователю все привилегии в базе данных, доступ будет запрещен. И после просмотра журнала моего сайта, кажется, что мой сайт не может импортировать модуль Sequelize должным образом.

Вот index.js. Когда исполняется app.js, импортируется модуль sequenceize файла index.js.

'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.json')[env];
const db = {};

let sequelize;
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 => {
    return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
  })
  .forEach(file => {
    const model = sequelize['import'](path.join(__dirname, file));
    db[model.name] = model;
  });

Object.keys(db).forEach(modelName => {
  if (db[modelName].associate) {
    db[modelName].associate(db);
  }
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

Это сводит меня с ума, пожалуйста, помогите мне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...