Javascript 作为早午餐应用程序的一部分构建服务器API是否是一种不好的做法?
我正在使用它构建一个单页web应用程序。该应用程序与我想使用node.js/express编写的后端CRUD API对话。对我来说,最自然的事情似乎是在我的应用程序的子目录中构建服务器,与Javascript 作为早午餐应用程序的一部分构建服务器API是否是一种不好的做法?,javascript,node.js,web-services,express,brunch,Javascript,Node.js,Web Services,Express,Brunch,我正在使用它构建一个单页web应用程序。该应用程序与我想使用node.js/express编写的后端CRUD API对话。对我来说,最自然的事情似乎是在我的应用程序的子目录中构建服务器,与app并行。这样做的好处是将所有代码放在一个屋檐下,并允许我通过早午餐手表--server启动一切 我开始这样做,然后我开始担心。如果我有通过npm install安装的服务器端依赖项——保存dev一些服务器依赖项,这些依赖项是否嵌入到我的单页应用程序的javascript中?这似乎会不必要地增加我的应用程序的
app
并行。这样做的好处是将所有代码放在一个屋檐下,并允许我通过早午餐手表--server
启动一切
我开始这样做,然后我开始担心。如果我有通过npm install安装的服务器端依赖项——保存dev一些服务器依赖项
,这些依赖项是否嵌入到我的单页应用程序的javascript中?这似乎会不必要地增加我的应用程序的大小。如果这种情况没有发生,那么brunch如何知道要在vendor.js
中包含哪些依赖项
这导致了更普遍的问题:在与客户机代码相同的项目中开发API是否是一种不好的做法?如果是这样的话,是否有构建服务器端API的
早午餐
等价物?这是一种不错的做法,并且有早午餐框架示例可以做同样的事情。您已经提到,您正在将服务器端代码放在应用程序
的一个单独目录中,因此只要另一个目录不在路径中。请观看早午餐配置的,则后端代码将不会包含在连接的前端代码中。在客户端和服务器应用程序之间,这对于输入验证之类的事情非常有用
在某些情况下,您可能最终希望将服务器端代码分解为单独的代码,但您所描述的方法应该能够在该时间到来时非常容易地完成
为了回答关于节点应用程序的早午餐等价物的最后一个问题,有几种工具可以在您编辑节点进程的代码(如、和)时自动重新启动节点进程。因为早午餐不会为你处理这部分(未来版本可能会添加此功能),任何时候,当你主动攻击服务器端代码时,你可能希望使用这些工具中的一个来分别运行
brunch watch
和服务器。当我使用npm
时,有时我想要客户端外部依赖,我想要它包含在vendor.js
中,有时我想要服务器端依赖,但我不想要希望它出现在vendor.js
中。我如何控制它是哪种依赖关系?例如,在我的seed中,bower\u组件/angular/angular.js
包含在files.javascripts.joinTo
中,但node\u modules/../express.js
没有。什么决定它是否加入到vendor.js
?最好这是自动为我不知何故。谢谢你的帮助!假定Bower组件是用于客户端的,并进行捆绑。npm/node_模块根本不会通过早午餐绑定到客户端代码中,除非您通过指定路径中的路径/文件非常明确地要求npm/node_模块绑定到客户端代码中。Brunch的未来版本将提供以更自动化的方式在客户端代码中包含npm依赖项的功能: