我建議你爲每個服務創建一個模塊,例如註冊模塊,產品模塊,訂單模塊,而不是在db模塊內部。那麼實現數據庫模塊應該是這些服務的依賴關係,而不是持有者。
應該有一個像層次結構:控制器 - >服務 - >數據庫模型|加密,通常低於水平不知道以上的水平。記住一個模塊組的功能。
服務將保持每個活動背後的邏輯,並根據服務結果控制重定向邏輯。
喜歡的東西:
控制器/ register.js
var register = require('./service/register');
registerController.postUser = function(req, res, next){
email = req.body.email;
password = req.body.psw;
try {
register.createUser(email,pasword);
} catch(e) {
// Handle email and password validation error
// Handle attempting to create a record for existent user
// Others
res.render('singup?error', { message: 'There was an error!' });
}
//successfull implementarion
res.render('login', { message: 'User registered successfully! Please login'});
}
服務/ register.js
var crypto = require('...');
var User = require('...');
module.exports = {
createUser: function(email, psw) {
// Validating fields
if(email == undefined || psw === undefined)
throw new Error('Field not valid');
//Validating existance
if(User.findByEmail(email) == undefined) {
// Encrypting password
var pswHash = crypto.createHmac('sha256',secret).update(password).digest('hex');
//Create the user object
var user = new User({
email: email,
encryptedPassword: pswHash
});
// Save object
user.save().then(function(user) {
console.log('User created successfully');
});
}
}
}
型號/ user.js的
在這裏,您可以在mongo或關係數據庫上執行數據庫實現。
我建議你爲每個服務創建一個模塊,例如註冊模塊,產品模塊,訂單模塊,而不是在db模塊內部。 DB模塊應該是這些服務的依賴關係,而不是持有者。應該有一個層次結構,如:controller - > service - > database |加密,通常低於水平不知道以上的水平。記住一個模塊組的功能。 –