在AngularJS和Nodejs之间共享代码

cub*_*buk 17 javascript node.js npm angularjs bower

什么是共享前端和后端使用之间的代码的最佳方式javascript,特别之间说nodejsangularjs

事情是,我们使用的是相同的enums,并constant valueserror codes在这两个后端和前端.现在我们只是将每个更改复制并粘贴到两个平台上,这不是一个好的解决方案.还有一些可以共享的服务.

我见过像这样的图书馆browserify; 但那不是我想要的.我在寻找类似的解决方案maven dependencyjava.在java,库可以轻松共享使用maven,而我找不到类似的方式来做到这一点javascript.有没有办法隔离这些服务并将它们作为依赖于独立nodejs使用npmangularjs使用bower?或者在前端和后端之间共享相同代码的方法是什么?

tko*_*one 10

有几种方法可以做到这一点.首先,您可以通过bower为前端代码创建一个新包,并通过npm创建后端代码.我有几个包发布到两个系统.

使用Bower安装 - 有关如何安装不在注册表中的模块的信息

NPM安装文档 -所有的安装与NPM的方式(与AUTH私人github上:git+ssh://git@github.com/[org]/[repo])

只需使用共享数据创建一个新模块,然后使用两个包管理器进行安装.它们都允许您安装未发布的模块,因此如果它是私有数据,您可以保留它.

如果您的前端需要require.js您可以使用类似的东西amdefine使其可用于您的节点后端,或者如果您只是使用旧版窗口代码,您可以执行以下操作:

var mydata = {};

if(typeof window !== 'undefined'){
    window.mydata = mydata;
} else {
     module.exports = mydata;
}
Run Code Online (Sandbox Code Playgroud)

如果您正在共享大量数据,我强烈建议您查看browserify以在commonjs中编写整个代码库,并使用browserify生成客户端包.有一个关于使用browserify 的资源清单,包括如何使用browserify和angular一起使用的东西