2013-09-10 2 views
0

Я пытаюсь интегрировать одно приложение Express с Docpad. Больше всего я хочу разделить макеты между моими статическими страницами и моими представлениями «Экспресс».Интеграция приложения express.js и docpad (общие раскладки)

В процессе я следую этой инструкции вопрос 16332833 с:

var docpadInstanceConfiguration = { 
    action: 'generate', 
    env: 'static' 
}; 
require('docpad').createInstance(docpadInstanceConfiguration, function(err,docpadInstance){ 
    if (err) return console.log(err.stack); 
    // ... 
}); 

Я получаю следующее сообщение об ошибке:

info: Generating... 
notice: DocPad is currently running without any plugins installed. You probably want to install some: http://docpad.org/plugins 

TypeError: path must be a string 
    at fs.exists (fs.js:166:11) 
    at Task.method (/Users/../node_modules/docpad/node_modules/safefs/out/lib/safefs.js:183:14) 
    at ambi (/Users/../node_modules/docpad/node_modules/ambi/out/lib/ambi.js:22:16) 
    at /Users/../node_modules/docpad/node_modules/taskgroup/out/lib/taskgroup.js:117:19 
    at b (domain.js:183:18) 
    at Domain.run (domain.js:123:23) 
    at Task.fire (/Users/../node_modules/docpad/node_modules/taskgroup/out/lib/taskgroup.js:116:21) 
    at process._tickCallback (node.js:415:13) 
    at Function.Module.runMain (module.js:499:11) 
    at startup (node.js:119:16) 
    at node.js:901:3 

без вариантов, и var docpadInstanceConfiguration = {}; нет ошибок:

info: Welcome to DocPad v6.52.1 
info: Contribute: http://docpad.org/docs/contribute 
info: Plugins: cleanurls, coffeescript, downloader, eco, less, livereload, marked, partials, related, stylus, text 
info: Environment: development 

Любая идея для получения общих макетов ween docpad и express views, и, например, получить защиту csrf? (Я использую ectjs для моих взглядов, является экологически совместимым)

Благодаря

+0

I может воспроизвести, определенно похоже на ошибку, увидит, что я могу сделать с исправлением. Спасибо за сообщение. – balupton

ответ

0

Оказывается, вам нужны load и ready действия до generate, например так:

var docpadInstanceConfiguration = { 
    action: 'load ready generate', 
    env: 'static' 
}; 
require('docpad').createInstance(docpadInstanceConfiguration, function(err,docpadInstance){ 
    if (err) return console.log(err.stack); 
    // ... 
}); 

Однако, глядя на API docs это не похоже на то, что действия подобным образом - это правильный путь, вместо этого мы должны сделать:

var docpadInstanceConfiguration = { 
    env: 'static' 
}; 
require('docpad').createInstance(docpadInstanceConfiguration, function(err,docpadInstance){ 
    if (err) return console.log(err.stack); 
    var generateOpts = {}; 
    docpadInstance.action('generate', generateOpts, function(err,result){ 
     if (err) return console.log(err.stack); 
     // ... 
    }); 
});