{"id":18528,"library":"masonry","title":"Masonry","description":"Masonry is a lightweight templating middleware for Express/Connect that wraps EJS templates, last published in 2013 at version 0.0.2. It reads template files into memory from a specified directory and adds a res.render() method. Deprecated by modern view engine integration in Express 3+. No updates since early Node 0.6 era; unmaintained.","status":"abandoned","version":"0.0.2","language":"javascript","source_language":"en","source_url":"git://github.com/bradleyg/masonry","tags":["javascript","template","templating","ejs","middleware","express","connect"],"install":[{"cmd":"npm install masonry","lang":"bash","label":"npm"},{"cmd":"yarn add masonry","lang":"bash","label":"yarn"},{"cmd":"pnpm add masonry","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Required for template rendering; loaded via dependency","package":"ejs","optional":false}],"imports":[{"note":"CJS module; no default export for ESM","wrong":"import masonry from 'masonry'","symbol":"default","correct":"const masonry = require('masonry')"},{"note":"Only CJS supported; no named exports","wrong":"","symbol":"masonry","correct":"const masonry = require('masonry')"}],"quickstart":{"code":"var express = require('express');\nvar masonry = require('masonry');\nvar app = express();\napp.use(masonry(__dirname + '/templates'));\napp.get('/', function(req, res) {\n  res.render('index.ejs', { name: 'World' });\n});\napp.listen(3000);\n","lang":"javascript","description":"Sets up Express with Masonry middleware, renders an EJS template."},"warnings":[{"fix":"Use app.set('view engine', 'ejs') with Express built-in view engine or switch to consolidate.js.","message":"Masonry is abandoned; no updates since 2013. Use Express view engine or consolidates instead.","severity":"deprecated","affected_versions":">=0.0.0"},{"fix":"Be aware that the signature differs: returns via callback or sends directly; incompatible with Express 4+ internal view system.","message":"Masonry's res.render() overwrites Express's default res.render() method.","severity":"gotcha","affected_versions":">=0.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Ensure underscore is installed: npm install underscore, or ignore if not used.","cause":"Masonry incorrectly lists underscore as a dependency in older versions but does not require it.","error":"Error: Cannot find module 'underscore'"},{"fix":"Apply masonry middleware before route definitions.","cause":"Masonry middleware not applied or loaded after Express routes.","error":"TypeError: res.render is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}