2017-06-08 6 views
1

node.js、express.js、passport.js、mongodbで小さなアプリケーションを構築します。私はこの技術に慣れていないので、コードをサーバーにアップロードしてからmongolabに接続する前に、ローカルでテストしようとしています。私の問題は、mongoシェルですべてのユーザーをローカルで見ることができないということです。ユーザーを追加するたびに、実際に追加するかどうかは分かりません。これまでのところ、私のコードは以下の通りです:自分のアプリケーション(ノード、エクスプレス、mongo)をローカルデータベースに接続してクエリを実行します。

var express = require('express'); 
var path = require('path'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 

var port = process.env.PORT || 3000; 

var passport = require('passport'); 
var LocalStrategy = require('passport-local').Strategy; 

var mongoose = require('mongoose'); 
var flash = require('connect-flash'); 
var session = require('express-session'); 

var routes = require('./routes/index'); 
var users = require('./routes/users'); 

var configDB = require('./config/database.js'); 
mongoose.connect(configDB.url); 

database.js(設定/ database.js)

module.exports = { 
    url: 'mongodb://localhost/expressauth', 
}; 

user.jsの(モデル/ user.jsの)

app.jsを

var mongoose = require('mongoose'); 
var bcrypt = require('bcrypt-nodejs'); 

var userSchema = mongoose.Schema({ 
    local: { 
    name: String, 
    email: String, 
    password: String, 
    }, 
}); 

userSchema.methods.generateHash = function(password) { 
    return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null); 
}; 

userSchema.methods.validPassword = function(password) { 
    return bcrypt.compareSync(password, this.local.password); 
}; 

module.exports = mongoose.model('User', userSchema); 

コードは、これまで正常に動作している、と私は、新しいユーザーを追加するたびに、私は、ユーザーID(つまり59397add4905d20f0329125cのようなもの)を取得することができますよパスワードを入力します。

mongoシェルですべてのユーザーを表示しようとしていますので、ターミナルでMONGOと入力してからSHOW DBSと入力すると、すべてのデータベースが表示されます。

database.js(url: 'mongodb:// localhost/expressauth')で作成したデータベースがexpressauthと呼ばれるので、私はそれを(USE expressauth)に切り替えています。ドキュメントで見つけたこのメソッドでクエリー(mysqlのSELECT *のようなもの)を作成します。> db.expressauth.find()

しかし、データはありません。だから私は実際に私はgithubの上で見つかったウェブアプリである(私のアプリケーションをテストすることはできませんよ:。?https://github.com/danielgynn/express-authentication/

私mongoshellが

答えて

1

が機能しない理由の任意の提案あなたがmongoshellにいる場合と、すでにあなたはコレクションは、そのデータベース内にあるものを見るためにshow collectionsを行うことができる必要があり、use expressauthと呼ばれる。userまたはusersコレクションがあなたの構成に応じてあるはずです。そして、あなたは、コレクション内のすべてのユーザーを取得するためにdb.users.find()を呼び出すことができます。

+0

素晴らしい!それは動作する!私は "ショーコレクション"の部分を見逃した。私はdatabasを照会しようとしていた一般的には – Matto

関連する問題