Node.js
Goede codeerstijl
Zoeken…
Opmerkingen
Ik zou een beginner aanraden om met deze stijl van coderen te beginnen. En als iemand een betere manier kan voorstellen (ps ik heb voor deze techniek gekozen en werkt efficiënt voor mij in een app die door meer dan 100.000 gebruikers wordt gebruikt), voel je vrij voor suggesties. TIA.
Basisprogramma voor aanmelding
In dit voorbeeld wordt uitgelegd hoe de code node.js in verschillende modules / mappen moet worden verdeeld voor een betere begrijpbaarheid. Door deze techniek te volgen, wordt het gemakkelijker voor andere ontwikkelaars om de code te begrijpen, omdat hij direct naar het betreffende bestand kan verwijzen in plaats van de hele code te doorlopen. Het belangrijkste gebruik is wanneer u in een team werkt en een nieuwe ontwikkelaar zich in een later stadium aansluit, het zal voor hem gemakkelijker worden om zich aan te sluiten bij de code zelf.
index.js : - Dit bestand beheert de serververbinding.
//Import Libraries
var express = require('express'),
session = require('express-session'),
mongoose = require('mongoose'),
request = require('request');
//Import custom modules
var userRoutes = require('./app/routes/userRoutes');
var config = require('./app/config/config');
//Connect to Mongo DB
mongoose.connect(config.getDBString());
//Create a new Express application and Configure it
var app = express();
//Configure Routes
app.use(config.API_PATH, userRoutes());
//Start the server
app.listen(config.PORT);
console.log('Server started at - '+ config.URL+ ":" +config.PORT);
config.js : -Dit bestand beheert alle aan configuratie gerelateerde parameters die overal hetzelfde blijven.
var config = {
VERSION: 1,
BUILD: 1,
URL: 'http://127.0.0.1',
API_PATH : '/api',
PORT : process.env.PORT || 8080,
DB : {
//MongoDB configuration
HOST : 'localhost',
PORT : '27017',
DATABASE : 'db'
},
/*
* Get DB Connection String for connecting to MongoDB database
*/
getDBString : function(){
return 'mongodb://'+ this.DB.HOST +':'+ this.DB.PORT +'/'+ this.DB.DATABASE;
},
/*
* Get the http URL
*/
getHTTPUrl : function(){
return 'http://' + this.URL + ":" + this.PORT;
}
module.exports = config;
user.js : - Modelbestand waarin schema is gedefinieerd
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
//Schema for User
var UserSchema = new Schema({
name: {
type: String,
// required: true
},
email: {
type: String
},
password: {
type: String,
//required: true
},
dob: {
type: Date,
//required: true
},
gender: {
type: String, // Male/Female
// required: true
}
});
//Define the model for User
var User;
if(mongoose.models.User)
User = mongoose.model('User');
else
User = mongoose.model('User', UserSchema);
//Export the User Model
module.exports = User;
userController : - Dit bestand bevat de functie voor gebruikersaanmelding
var User = require('../models/user');
var crypto = require('crypto');
//Controller for User
var UserController = {
//Create a User
create: function(req, res){
var repassword = req.body.repassword;
var password = req.body.password;
var userEmail = req.body.email;
//Check if the email address already exists
User.find({"email": userEmail}, function(err, usr){
if(usr.length > 0){
//Email Exists
res.json('Email already exists');
return;
}
else
{
//New Email
//Check for same passwords
if(password != repassword){
res.json('Passwords does not match');
return;
}
//Generate Password hash based on sha1
var shasum = crypto.createHash('sha1');
shasum.update(req.body.password);
var passwordHash = shasum.digest('hex');
//Create User
var user = new User();
user.name = req.body.name;
user.email = req.body.email;
user.password = passwordHash;
user.dob = Date.parse(req.body.dob) || "";
user.gender = req.body.gender;
//Validate the User
user.validate(function(err){
if(err){
res.json(err);
return;
}else{
//Finally save the User
user.save(function(err){
if(err)
{
res.json(err);
return;
}
//Remove Password before sending User details
user.password = undefined;
res.json(user);
return;
});
}
});
}
});
}
}
module.exports = UserController;
userRoutes.js : - Dit is de route voor userController
var express = require('express');
var UserController = require('../controllers/userController');
//Routes for User
var UserRoutes = function(app)
{
var router = express.Router();
router.route('/users')
.post(UserController.create);
return router;
}
module.exports = UserRoutes;
Het bovenstaande voorbeeld lijkt misschien te groot, maar als een beginner bij node.js met een kleine mix van uitdrukkelijke kennis dit probeert te doorlopen, zal dit gemakkelijk en echt nuttig zijn.