2013-03-12 64 views
0

初始化数据我使用的猫鼬和设置模式,为用户如下:填充在MongoDB中

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

现在我需要这个有一个初始行与值作为管理员,管理员,管理员 如何去做这个?

我使用Express服务器来验证这样

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

P.S用户我是新来的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)}) 

不知道这是否是最好的方法与否:(

+0

问题是什么? – 2013-03-12 10:24:04

+0

现在我需要这个与管理员,管理员,管理员有一个值的初始行如何?请仔细阅读后。其中提到它。 – beNerd 2013-03-12 10:24:36

+0

啊,现在是黑体。我被“//验证数据库代码到这里”弄糊涂了。回答来了。 – 2013-03-12 10:32:12

回答

-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' 
    }); 
    }); 
}); 

更好的是在猫鼬中实现预保存钩子,但这是另一个主题的主题。如果您不希望其他人注册您的网站,请在创建自己时删除该代码。

+0

看到我的编辑。我想我是在正确的道路上。有没有办法用猫鼬在不写另一个函数的情况下查看当前数据? – beNerd 2013-03-12 10:44:18

+0

这看起来像或多或少我建议,它应该工作。你怎么看现在的数据?就像'User.find({},function(err,users){console.log(users);});'? – 2013-03-12 10:56:24

+0

我们可以在终端上做到这一点吗? – beNerd 2013-03-12 11:03:05