私はnode.jsが新しく、(ユーザー名、パスワード)カップルを含むデータベースのユーザーからパスワードを取得しようとしています。 findOne関数は1つの結果を返すようですが、パスワードにアクセスしようとすると、結果として常に「未定義」になります。誰かが私を助けてくれますか?Node.js/sequelize:findOne()関数の結果へのアクセス?
var express = require('express');
var app = express();
var sqlite = require('sqlite3');
var port = process.env.PORT || 8000;
var Sequelize = require('sequelize');
var sequelize = new Sequelize("_databaseName_", "_username_", "_password_", {
dialect: 'sqlite',
storage: "users.sqlite"
});
var User = sequelize.define('User',
{
tx_index: { type: Sequelize.INTEGER, primaryKey: true},
username: Sequelize.STRING,
password: Sequelize.STRING
},{
timestamps: false,
tableName: 'data',
freezeTableName: true
})
//no need of sync, as the db already exists and is populated
//User.sync();
User.findOne({where: {username: 'julien'}}).then(function(user) {
if (!user) {
console.log('unknown user');
} else {
console.log('user password is '+user.password);
//console.log('user password is '+user.get('password'));
}
});
app.listen(port);
console.log('listening => http://localhost:' + port);
そして出力:
node server.js
listening => http://localhost:8000
Executing (default): SELECT `tx_index`, `username`, `password` FROM `data` AS `User` WHERE `User`.`username` = 'julien' LIMIT 1;
user password is undefined
私は別のユーザー名を選択した場合:
User.findOne({where: {username: 'WHATEVER'}}).then(function(user) {
を私は出力に持っている。ここ
は本当に簡単server.jsです。
node server.js
listening => http://localhost:8000
Executing (default): SELECT `tx_index`, `username`, `password` FROM `data` AS `User` WHERE `User`.`username` = 'WHATEVER' LIMIT 1;
unknown user
クエリはOKのようですが、パスワードにアクセスできない(定義されていません)。
最後に、データベースの内容:私は私が間違ってやっていること見つけることに怒っつもり
SELECT * FROM 'data' LIMIT 0,30;
TX_INDEX PASSWORD USERNAME
2 123456 julien
3 titi toto
4 bar foo
SELECT tx_index, username, password FROM data WHERE username = 'julien';
TX_INDEX USERNAME PASSWORD
2 julien 123456
!
:: EDIT ::
私はwoleユーザーオブジェクトの印刷 "はconsole.log(ユーザ);" は、ここで出力されます。それは何ですか ? 'User'モデルのインスタンスですが、それは空ですか?
'user'オブジェクト全体を一度印刷してみてください。実際のユーザオブジェクトは、いくつかの結果オブジェクトの中にネストすることができます。 –
モデルユーザーのインスタンスであると思われるものを見ることができますが、それが何であるかはわかりません...プロミスの「ユーザー」を使用して何かを誤解したようです... – Julien