0

私はマングースを使用しており、次のようにユーザーのスキーマを設定しています。

var users=new mongoose.Schema({
username:String,
password:String,
type:String
});
var User=mongoose.model('user',users);

これで、admin、admin、adminの値を持つ最初の行が必要になります。これを行う方法は?

私はこのようなユーザーを確認するためにエクスプレスサーバーを使用しています

app.post("/verifyLogin",function(request,response){
var usr=request.body.username;
var pass=request.body.password;
//VERIFICATION FROM DATABASE CODE GOES HERE
});

PS私はmongodb/ドキュメントベースのデータストレージに不慣れです。これまで、私はphpmyadminを使用して、提供されたインターフェイスから直接データを挿入していました。

私が試したこと: 私はこのような一時的な投稿ハンドラーを作成しました

app.post("/initialize/database",function(request,response){
var user=new userModel({username:'admin',password:'password', type:'admin'});
user.save(function(err){
if(!err){return console.log('created')}else{console.log(err)}
return response.send(user);
});
})

そして、コンソールでこれを行いました:

jQuery.post('/initialize/database',function(data){console.log(data)})

これが最善のアプローチかどうかわからない:(

4

1 に答える 1

-2

端末から初期化データを入力するのが最も簡単だと思います。

$ mongo
> use database-name
> db.users.insert({ username: 'admin', password: 'admin', type: 'admin' })

これは単純に物事を進めるためには有効ですが、本番環境で平文のパスワードをデータベースに保存することは禁止されています。ハッシュを実装し、ターミナルの代わりにノードを使用するには、代わりに新しいユーザーを作成するためのルートを作成できます。何かのようなもの:

app.post("/signup",function(request,response){
  var usr = request.body.username,
      pass = request.body.password;

  somePasswordHashingAlgoritm(pass, function (hashedPassword) {
    User.insert({
      username: usr,
      password: hashedPassword,
      type: 'admin'
    });
  });
});

マングースに事前保存フックを実装するのがさらに良いでしょうが、それは別のトピックの主題です。他のユーザーがサイトにサインアップしたくない場合は、自分で作成したときにそのコードを削除してください。

于 2013-03-12T10:42:23.480 に答える