Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 作为早午餐应用程序的一部分构建服务器API是否是一种不好的做法?_Javascript_Node.js_Web Services_Express_Brunch - Fatal编程技术网

Javascript 作为早午餐应用程序的一部分构建服务器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中?这似乎会不必要地增加我的应用程序的

我正在使用它构建一个单页web应用程序。该应用程序与我想使用node.js/express编写的后端CRUD API对话。对我来说,最自然的事情似乎是在我的应用程序的子目录中构建服务器,与
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依赖项的功能: