What is currently the best practice for loading models (and goes for all required files I guess)?
I’m thinking these two ways to achieve the solution (nonsense code to illustrate follows):
var Post = require('../models/post');
function findById(id) {
return new Post(id);
}
function party() {
return Post.getParty();
}
vs
function findById(id) {
return new require('../models/post')(id);
}
function party() {
return require('../models/post').getParty();
}
Is one of these snippets preferred? Are there considerable memory and time tradeoffs? Or is it just a premature optimization?
It’s a premature optimization (calls to
require()are cached and idempotent), but I’d personally call your first style better (loading dependencies during initialization rather than subsequent processing) since it’s easier to get your head around what you’re doing. Loading everything at the start will slightly slow down your startup (which is hardly ever an issue) in return for making most requests run slightly faster (which you shouldn’t worry about unless you’ve identified a bottleneck and done some hardcore profiling).