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 回答