2015-11-11 64 views
0

我有一個用Node JS JS編寫的API。我用apidocjs.com來生成靜態內容。我遇到的問題是,如果這是最佳做法,我希望文檔文件位於子域docs.example.comapi.example.com/docs之下?Express JS子域靜態內容

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

app.use('/v1', subdomain('api', require('./controller/api_v1')(stormpath, log))); 
app.use(subdomain('docs', require('./controller/docs')(stormpath, log))); 

app.use(require('./controller/index')(stormpath, log)); 

如果我將docs/api中的index.html更改爲start.html,此方法可行。 所以最後一個問題是如何停止表達JS來啓動index.html,如果我不想要它?

回答

0

所以我做到了:)

這裏是如何。我用這個lib加入韓德爾子域express-subdomain

"APP.JS" 
app.use(express.static(__dirname + '/docs/api', { 
    index: false, 
    redirect: false 
})); 

app.use(subdomain('docs', require('./controller/docs')(log))); 

"docs/api" 
res.sendFile(path.join(__dirname+'/../docs/api/index.html')); 
1

http://api.example.com/docs很容易被稱爲docs的API資源混淆。

http://docs.example.com/避免了這種歧義,所以它可能是一個更好的選擇。

+0

我認爲這是做一個好辦法。但如何在快遞中我可以設置子域,並有一個靜態路徑apidocs? –

+0

@KristerJohansson如果它全部是靜態的,我不會用express來做。我的2c。 –

+0

@KevinB你會怎麼做?第二臺服務器 –