Node.js 通过Sequelize(Express/NodeJS)访问mysql时出错

Node.js 通过Sequelize(Express/NodeJS)访问mysql时出错,node.js,express,sequelize.js,Node.js,Express,Sequelize.js,我正在尝试开始使用Sequelize。我面临着一些错误,虽然我发现并清除了其中的一些错误,但这一个我无法发现 项目结构: Project -Client -Server --models ---index.js ---Sid.js --router ---routes ----signup.js ---index.js app.js 我的配置变量: "Lexstart": { "dbConfig": { "driver

我正在尝试开始使用Sequelize。我面临着一些错误,虽然我发现并清除了其中的一些错误,但这一个我无法发现

项目结构:

Project
 -Client
 -Server
  --models
    ---index.js
    ---Sid.js
  --router
    ---routes
       ----signup.js
    ---index.js
  app.js
我的配置变量:

"Lexstart": {
  "dbConfig": {
     "driver": "mysql",
     "user": "root",
     "database": "sid1",
     "password": "sid1",
     "host": "127.0.0.1",
     "port": "3306"
  }
}
My models/index.js:

var fs        = require("fs");
var path      = require("path");
var Sequelize = require('sequelize');
var config    = require('config');  // we use node-config to handle environments

var dbConfig = config.get('Lexstart.dbConfig');

// initialize database connection
var sequelize = new Sequelize(
    dbConfig.database,
    dbConfig.username,
    dbConfig.password,{
      host: dbConfig.host,
      dialect: dbConfig.driver
}
);
var db        = {};

fs
.readdirSync(__dirname)
.filter(function(file) {
    return (file.indexOf(".") !== 0) && (file !== "index.js");
})
.forEach(function(file) {
    var model = sequelize.import(path.join(__dirname, file));
    db[model.name] = model;
});

Object.keys(db).forEach(function(modelName) {
if ("associate" in db[modelName]) {
    db[modelName].associate(db);
}
});

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

module.exports = db;
模型/Sid.js

module.exports = function(sequelize, DataTypes) {
    var Sid = sequelize.define("Sid", {
        username: DataTypes.STRING,
        password: DataTypes.STRING
     });

return Sid;
};
我的路由器/index.js

/**
* The Index of Routes
*/

module.exports = function (app) {

// The signup route
app.use('/signup', require('./routes/signup'));
}
我的路由器/routes/signup.js

var models = require('../../models');
var Sid = models.Sid;
// Include Express
var express = require('express');
// Initialize the Router
var router = express.Router();
var config    = require('config');  // we use node-config to handle environments


// Setup the Route
router.get('/', function (req, res) {

Sid.findAll().then(function(users) {
    console.log(users);;
});

// return a json response to angular
res.json({
    'msg': users
});
});

router.get('/sid', function (req, res) {

// return a json response to angular
res.json({
    'msg': "sid"
});
});



// Expose the module
module.exports = router;
路由localhost:3000/signup/sid工作正常。但是/signup正在放弃错误。正如您在下面的错误文本中所看到的,它显示正在尝试连接,但没有配置提供的变量值(用户名、密码、主机)(配置变量工作正常,抓取正常)。我在调试时也无法理解这一点

Unhandled rejection SequelizeAccessDeniedError: ER_ACCESS_DENIED_ERROR: Access denied for user ''@'localhost' (using password: YES)
at Handshake._callback (/Users/siddharthsrivastava/Documents/sites/express/LexStart/server/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:51:20)
at Handshake.Sequence.end (/Users/siddharthsrivastava/Documents/sites/express/LexStart/server/node_modules/mysql/lib/protocol/sequences/Sequence.js:96:24)
at Handshake.ErrorPacket (/Users/siddharthsrivastava/Documents/sites/express/LexStart/server/node_modules/mysql/lib/protocol/sequences/Handshake.js:103:8)
at Protocol._parsePacket (/Users/siddharthsrivastava/Documents/sites/express/LexStart/server/node_modules/mysql/lib/protocol/Protocol.js:274:23)
at Parser.write (/Users/siddharthsrivastava/Documents/sites/express/LexStart/server/node_modules/mysql/lib/protocol/Parser.js:77:12)
at Protocol.write (/Users/siddharthsrivastava/Documents/sites/express/LexStart/server/node_modules/mysql/lib/protocol/Protocol.js:39:16)
at Socket.<anonymous> (/Users/siddharthsrivastava/Documents/sites/express/LexStart/server/node_modules/mysql/lib/Connection.js:96:28)
at Socket.emit (events.js:107:17)
at readableAddChunk (_stream_readable.js:163:16)
at Socket.Readable.push (_stream_readable.js:126:10)
at TCP.onread (net.js:538:20)
未处理的拒绝SequelizeAccessDeniedError:ER_ACCESS_DENIED_ERROR:user'@'localhost'的访问被拒绝(使用密码:是)
握手时。_回调(/Users/siddharthsrivastava/Documents/sites/express/LexStart/server/node_modules/sequelize/lib/dialogs/mysql/connection manager.js:51:20)
在Handshake.Sequence.end(/Users/siddharthsrivastava/Documents/sites/express/LexStart/server/node_modules/mysql/lib/protocol/sequences/Sequence.js:96:24)
在Handshake.ErrorPacket(/Users/siddharthsrivastava/Documents/sites/express/LexStart/server/node_modules/mysql/lib/protocol/sequences/Handshake.js:103:8)
at Protocol._parsePacket(/Users/siddharthsrivastava/Documents/sites/express/LexStart/server/node_modules/mysql/lib/Protocol/Protocol.js:274:23)
在Parser.write(/Users/siddharthsrivastava/Documents/sites/express/LexStart/server/node_modules/mysql/lib/protocol/Parser.js:77:12)
在Protocol.write(/Users/siddharthsrivastava/Documents/sites/express/LexStart/server/node_modules/mysql/lib/Protocol/Protocol.js:39:16)
在插座上。(/Users/siddharthsrivastava/Documents/sites/express/LexStart/server/node_modules/mysql/lib/Connection.js:96:28)
在Socket.emit(events.js:107:17)
在readableAddChunk(_stream_readable.js:163:16)
在Socket.Readable.push(_stream_Readable.js:126:10)
在TCP.onread(net.js:538:20)
请导游


Siddharth

数据库配置中没有用户名。 在配置中将用户替换为用户名。

“dbConfig”:{
“驱动程序”:“mysql”,
“用户”:“根用户”,
...
var sequelize=新的sequelize(
dbConfig.database,
dbConfig.用户名

转到config.json,将用户更改为用户名,然后重新启动应用程序。有时不会出现错误,应用程序无法正常工作

"Lexstart": {
  "dbConfig": {
     "driver": "mysql",
     "username": "root",
     "database": "sid1",
     "password": "sid1",
     "host": "127.0.0.1",
     "port": "3306"
  }
}