MySQL veritabanımı kullanmak için https://github.com/dresende/node-orm2 node.js/express kullanıyorum.MySQL'i (node-orm2 ile) Node.js/Express'te nasıl alay ediyorsunuz?
node.js dünyasına yeni geldim ve şu ana kadar sıkışmış durumdayım, birim testi (entegrasyon testi değil) nasıl basit bir işlev olduğunu bilmiyorum. Burada
module.exports = function (db, cb) {
var User = db.define('user', {
uid : { type: 'number', rational: false, unique: true, required: true },
first_name : { type: 'text', size: 100, required: true },
last_name : { type: 'text', size: 100, required: true },
picture : { type: 'text', size: 255, required: false },
email : { type: 'text', size: 255, required: true },
creation_date : { type: 'date', time: true },
modification_date : { type: 'date', time: true }
}, {
methods: {
fullName: function() {
return this.first_name + ' ' + this.last_name;
}
},
hooks: {
beforeCreate: function (next) {
if (this.creation_date == undefined) {
this.creation_date = new Date();
}
if (this.modification_date == undefined) {
this.modification_date = new Date();
}
return next();
}
}
});
// CUSTOM FUNCTIONS
User.getByUid = function(uid, callback) {
this.find({ uid: uid }, function(err, users) {
if(err) callback(err);
if (users.length == 1) {
callback(null, users[0]);
} else {
callback('No user found with uid=' + uid);
}
});
};
User.hasMany("friends", User, {
status: { type: 'enum', values: ['pending', 'refused', 'active'] }
}, {
reverse: 'friendsrev', mergeId: 'user_id', mergeAssocId: 'friend_id'
});
return cb();
};
ve arkadaşları aktif arkadaş bulmak için benim yöntemlerim: İşte
benim kullanıcı modeli (ORM)var express = require('express'),
orm = require('orm'),
config = require('./config/config.js'),
auth = require('./services/authentication'),
helper = require('./middlewares/helper.js'),
friends = require('./modules/friends.js');
var app = express();
app.use(orm.express('mysql://' + config.mysql.username + ':' + config.mysql.pwd + '@' + config.mysql.host + ':' + config.mysql.port + '/' + config.mysql.db, {
define: function(db, models, next) {
db.load("./models/models.js", function(err) { // loaded!
models.user = db.models.user;
});
}
}));
var middlewares = [auth.authenticate, helper.retrieveUser];
app.get('/friends', middlewares, friends.findActiveFriends);
app.listen(3000);
console.log('Listening on port 3000...');
burada kullanıcı modelidir yükleme, benim server.js olduğunu. js:
var _findActiveFriends = function(req, res) {
req.currentUser.getFriends({
status: 'active'
}, function(err, friends) {
if (err) throw err;
res.send(JSON.stringify(friends));
});
};
Ben mock tarafından (moka ve sinon.js ile?) basit bir test yazabilirim nasıl bilmek istiyorum
veritabanı bağlantısı ve istek de. ORM tarafından bir ara yazılımda döndürülen bir kullanıcı olan req.currentUser değerini alayım.
Sadece birim sınamalarını çalıştırmak istiyorum ve gerçek bir DB kullanmayın veya bazı HTTP çağrıları yapıyorum.
Yardımlarınız için teşekkürler.