node.js - How to host jsdoc / apidoc on Express.js -


im using http://apidocjs.com/ create public documentation express.js api building. question is, how use express.js route , serve documentation?

here's express server setup:

/** load config globally defined __config  * @requires fs */ var fs = require('fs'); __config = json.parse(fs.readfilesync('config/config.json'));  /** custom logging moduele * @requires ninja_modules/jacked-logger */ log = require('./ninja_modules/jacked-logger');  /** configure express server  * @requires express  * @param {function} callback configures server */ var express = require('express'); var app = express(); app.configure(function() {     /** sets default public directory */     app.use(express.static(__dirname + '/public'));     /** sets root views directory */     app.set('views', __dirname + '/public/views');     /** compress response data gzip / deflate. */     app.use(express.compress());     /** request body parsing middleware supporting json, urlencoded, , multipart requests. */     app.use(express.bodyparser());     /** compress response data gzip / deflate. */     app.use(express.methodoverride());     /** set express router */     app.use(app.router);     /** .html files, ejs = embedded javascript */     app.engine('html', require('ejs').renderfile);     /** default view engine name views rendered without extensions */     app.set('view engine', 'html');      /** custom error logging      * @requires ninja_modules/jacked-logger      * @param {object} err - error object      * @param {object} req - reqiuest object      * @param {object} res - response object      * @param {function} next - go next error */     app.use(function(err, req, res, next) {         log.error(err.stack);         res.status(500);         next(err);     }); }); /** set express listen port defined in configuration file */ var appserver = app.listen(__config.port, function(){     log.sys("express server listening on port " + appserver.address().port + " in " + app.settings.env + " mode"); });  // add documentation app.use('/api', express.static(__dirname + '/public/documentation/api')); app.use('/dev', express.static(__dirname + '/public/documentation/developer'));; 

here's grunt file use create documentation:

'use strict';  module.exports = function(grunt) {     grunt.initconfig({         jsdoc : {             dist : {                 src: ['*.js', 'config/*.json', 'ninja_modules/*.js','workers/*.js'],                  options: {                     destination: 'public/documentation/developer',                     private: true                 }             }         },         apidoc: {             ninjapi: {                 src: 'router/',                 dest: 'public/documentation/api/',                 options: {                     includefilters: [ ".*\\.js$" ]                 }                         }         }     });     grunt.loadnpmtasks('grunt-jsdoc');     grunt.loadnpmtasks('grunt-apidoc');     grunt.registertask('default', ['jsdoc','apidoc']); } 

does know how can host documentation without declaring app.get('.. every page? tutorial somewhere great.

thanks in advance.

you don't need declare routes serving every static file.

this should enough:

app.use('/api', express.static(__dirname + '/public/documentation/api')); 

but if public/documentation/api directory not contain index file, you'll request error.

so instead, allows browse directories:

app.use('/api', express.static(__dirname + '/public/documentation/api')); app.use('/api', express.directory(__dirname + '/public/documentation/api')); 

Comments

Popular posts from this blog

Unable to remove the www from url on https using .htaccess -