Ich versuche, mit Sequelize zu starten. Ich bin vor ein paar Fehler, obwohl einige von ihnen gemustert und gelöscht, aber dieses Ich bin, um herauszufinden, nicht in der Lage.Fehler beim Zugriff auf mysql durch Sequelize (Express/NodeJS)
Projektstruktur:
Project
-Client
-Server
--models
---index.js
---Sid.js
--router
---routes
----signup.js
---index.js
app.js
meine Config varriable:
"Lexstart": {
"dbConfig": {
"driver": "mysql",
"user": "root",
"database": "sid1",
"password": "sid1",
"host": "127.0.0.1",
"port": "3306"
}
}
Meine Modelle/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;
models/Sid.js
module.exports = function(sequelize, DataTypes) {
var Sid = sequelize.define("Sid", {
username: DataTypes.STRING,
password: DataTypes.STRING
});
return Sid;
};
mein Router/index.js
/**
* The Index of Routes
*/
module.exports = function (app) {
// The signup route
app.use('/signup', require('./routes/signup'));
}
mein Router/Routen/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;
Die Route localhost: 3000/Anmeldungen/sid funktioniert gut. Aber die/Anmeldung gibt Fehler auf. Wie Sie in dem Fehlertext unten sehen können, dass die Verbindung zeigt, versucht, ohne die Konfiguration wird geliefert Variablenwert (Benutzername, Passwort, Host) (Die Konfigurationsvariable arbeitet und das Abrufen in Ordnung). Das kann ich auch beim Debuggen nicht herausfinden.
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)
Bitte führen Sie.
Siddharth