Node.js 具有动态HTML后端和javascript前端的应用程序的项目树

Node.js 具有动态HTML后端和javascript前端的应用程序的项目树,node.js,express,single-page-application,Node.js,Express,Single Page Application,我有一个小的pet项目,它是一个单页应用程序(Node.js+express.js+EJS视图),其中还包括客户端javascript。我已经使用一个直接的项目结构启动了项目结构的后端部分,它由一个捆绑所有服务器端javascript的/src结构和一个/public结构组成,以服务于所有静态位。然而,我不清楚客户端javascript应该如何适应这个项目结构 Node.js上的其他stackoverflow问题建议服务器端代码应该存储在/lib中,客户端代码应该存储在/app中,但对我来说,将

我有一个小的pet项目,它是一个单页应用程序(Node.js+express.js+EJS视图),其中还包括客户端javascript。我已经使用一个直接的项目结构启动了项目结构的后端部分,它由一个捆绑所有服务器端javascript的
/src
结构和一个
/public
结构组成,以服务于所有静态位。然而,我不清楚客户端javascript应该如何适应这个项目结构

Node.js上的其他stackoverflow问题建议服务器端代码应该存储在
/lib
中,客户端代码应该存储在
/app
中,但对我来说,将服务器端代码称为库代码没有意义。其他来源,如非权威博客帖子,将
/lib
替换为
/server
,到此为止。然而,这看起来并不是一个进步

由于客户端javascript与EJS视图一起提供,因此将项目分为服务器端和客户端项目没有多大意义


考虑到这一点,基于Node.JS+EJS+模板视图为单个年龄段的应用程序组织项目结构的最佳方法是什么?

使用上述将项目划分为./client和./server的结构,我已经看到它在React项目的单页应用程序中使用过。但这需要运行节点两次或使用新的包来处理它

我使用与您相同的堆栈,我建议您使用与另一主题中所述相同的堆栈,对于专业express应用程序,使用以下命令使其变得简单:

/
  /bin - scripts, helpers, binaries
  /lib - your application
  /config - your configuration
  /public - your public files
  /test - your tests
现在还有另一个选项,我建议您将服务器端文件.gitignore和.env保留在根文件夹中。剩下的部分,你把所有的东西都放进一个客户端文件夹或者你为你的应用程序选择的任何名称中。为了在您的项目中快速更新,您可以添加包并全局安装。它当前具有以下依赖项:

  "dependencies": {
    "cookie-parser": "~1.4.4",
    "debug": "~2.6.9",
    "ejs": "~2.6.1",
    "express": "~4.16.1",
    "http-errors": "~1.6.3",
    "mongodb": "^3.6.6",
    "morgan": "~1.9.1"
  }
使用以下命令:express-eclient

您应该最终得到如下项目结构:

client/
  /bin - scripts, helpers, binaries
  /public - your public files
  /routes - exporting your home route
  /views - your views and partials for EJS
您还可以咨询一些著名的项目,以使用所需的文档构建一个大型node.JS项目的模式,下面是一个