Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

creating registration and login form in node.js and mongodb

I am new to node.js and want to create a registration and login page for user.also there has to proper authorisation for the user.I want to store the user information inside mongodb database.How can i achieve this.can someone provide me the code to do so, so that i can get started with node.js and mongodb.Please help

like image 313
Dar Hamid Avatar asked Nov 08 '11 14:11

Dar Hamid


People also ask

How do I create a schema in MongoDB using node JS?

import mongoose from 'mongoose'; const Schema = mongoose. Schema; const postSchema = new Schema({ title: { type: 'String', required: true }, content: { type: 'String', required: true }, slug: { type: 'String', required: true } }); let Post = mongoose. model('Post', postSchema);

CAN node JS connect to MongoDB?

Install the MongoDB Node.The MongoDB Node. js Driver allows you to easily interact with MongoDB databases from within Node. js applications. You'll need the driver in order to connect to your database and execute the queries described in this Quick Start series.


1 Answers

You can find a complete sample of what you're trying to do in the Nodepad application by Alex Young. The 2 important file you should take a look at are these 2:

https://github.com/alexyoung/nodepad/blob/master/models.js
https://github.com/alexyoung/nodepad/blob/master/app.js

A part of the model look like this:

  User = new Schema({     'email': { type: String, validate: [validatePresenceOf, 'an email is required'], index: { unique: true } },     'hashed_password': String,     'salt': String   });    User.virtual('id')     .get(function() {       return this._id.toHexString();     });    User.virtual('password')     .set(function(password) {       this._password = password;       this.salt = this.makeSalt();       this.hashed_password = this.encryptPassword(password);     })     .get(function() { return this._password; });    User.method('authenticate', function(plainText) {     return this.encryptPassword(plainText) === this.hashed_password;   });    User.method('makeSalt', function() {     return Math.round((new Date().valueOf() * Math.random())) + '';   });    User.method('encryptPassword', function(password) {     return crypto.createHmac('sha1', this.salt).update(password).digest('hex');   });    User.pre('save', function(next) {     if (!validatePresenceOf(this.password)) {       next(new Error('Invalid password'));     } else {       next();     }   }); 

I think he also explains the code on the dailyjs site.

like image 63
alessioalex Avatar answered Sep 22 '22 23:09

alessioalex