我怎样才能成为使用快递2个不同的文件夹(客户端和管理员)

时间:2019-02-01 17:19:27

标签: node.js express

我试图建立我的Node.js应用程序的管理面板。我的当前文件夹结构如下所示:

client (folder)
  images (folder)
  fonts (folder)
  index.html
  index.css
  index.js

app.js (node.js server code)
package.json

我想在该根目录中有另一个文件夹,如下所示:

admin (folder)
  index.html
  index.css
  index.js

在我的node.js应用程序中只有两行表达代码(见下文),我尝试了第一个“逻辑”东西。

app.use(express.static(path.join(__dirname, 'client')))
app.use(express.static(path.join(__dirname, 'admin')))

app.get('/admin', (req, res) => res.sendFile(`${__dirname}/admin/index.html`))
app.get('*', (req, res) => res.sendFile(`${__dirname}/client/index.html`))

但是它显然不起作用,在index.html第1行上引发了一些奇怪的错误,即“ <”是无效字符或某些字符,因此它已损坏。

代码:

app.use(express.static(path.join(__dirname, 'client')))

app.get('*', (req, res) => res.sendFile(`${__dirname}/client/index.html`))

这实际上是我目前在express中使用的所有代码,说实话,我什至都不甚了解。所有的路由都在客户端完成,到目前为止,它工作得很好。

我要在这里完成的工作是,无论用户导航到什么路由,他都会重定向到我的客户端应用程序,而前端路由器负责其余的工作(即localhost:8080 /或localhost:8080 / ps4 / games。 ..)。但是,如果我去到localhost:8080 / admin,然后只有在这种情况下,我想成为一个管理面板,从那里我可以登录并管理自己的产品,菜单项,回答聊天消息等

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以替换以下4行代码:

app.use(express.static(path.join(__dirname, 'client')))
app.use(express.static(path.join(__dirname, 'admin')))

app.get('/admin', (req, res) => res.sendFile(`${__dirname}/admin/index.html`))
app.get('*', (req, res) => res.sendFile(`${__dirname}/client/index.html`))

带有这些:

app.use('/', express.static(__dirname +'/client'));
app.use('/admin', express.static(__dirname +'/admin'));

上面的express内置函数允许您使用所需路径托管静态文件。您可以在http://expressjs.com/en/starter/static-files.html

的express文档中找到有关托管静态文件的更多信息。