/routes/schema.js
ファイルにある次のスキーマを使用してい
を使用して...私の/routes/register.js
ファイルで複数の接続エラーノードJSとMongoDBの
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var userSchema = new Schema({
username: String,
password: String,
name: String,
last: String,
year: Number,
degree: String
});
var User = mongoose.model('User', userSchema);
module.exports = {
User: User
}
私はPOSTデータを使用していくつかの情報を格納しています...
var User = require('../routes/schema').User;
exports.postRegister = function (req, res) {
var u = new User({
username: req.body.reg_username,
password: req.body.reg_password,
name: req.body.reg_name,
last: req.body.reg_lastname,
year: req.body.reg_year,
degree: req.body.reg_degree
});
u.save(function (err) {
if (err) {
throw err;
}
else {
console.log("saved");
res.render('index', { title: 'Express' });
}
});
}
すべてがデータベースに保存されます。しかし今、このregister.js
ファイルは、ユーザを/routes/index.js
にリダイレクトします。ここで、ユーザはデータベースに保存されている認証情報を使用してサインインする必要があります。
は、だから私は、ユーザー名とパスワードが私のデータベースにコレクションに一緒に存在するかどうかを確認する必要があり、私のindex.js
ファイルで、私は次のことを試してみました...
var User = require('../routes/schema').User;
exports.signin = function (req, res) {
User.findOne({
username: req.body.log_username,
password: req.body.log_password
}, function (err, docs) {
if (docs.length) {
console.log("name exists");
}
else {
console.log("no exist");
}
});
};
私はと同じスキーマでfindOne
機能を使用データベースのコレクションにユーザー名とパスワードが存在するかどうかを確認しますが、正しく動作しません。私は複数の接続エラーが発生したようで、私はそれを避ける方法を知らない。
すでにデータベースにある資格情報を使用してログインしようとすると、コンソールにno exist
が出力され、exports.signin
のelse文に達しています。
入手したエラーメッセージを投稿できますか? – Kairat
@Kairat私が得る1つのエラーメッセージは 'docs.length'です。なぜなら、' docsはnullにできないからです。 ' – Bolboa
文書が実際にあなたのデータベースに入っているかどうかチェックしましたか? – Kairat