Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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 AngularJS和Node.js与ExpressJS集成_Javascript_Node.js_Express - Fatal编程技术网

Javascript AngularJS和Node.js与ExpressJS集成

Javascript AngularJS和Node.js与ExpressJS集成,javascript,node.js,express,Javascript,Node.js,Express,我正在尝试用Node.js和Express和Angularjs编写一个应用程序 我是否允许AngularJS处理所有着陆请求?Node.js纯粹是为了API?这意味着Node.js中编写的所有路由都将如下所示: app.get('/api/users', users.showAll); app.post('/api/users', users.create); app.get('/api/users/fb/:fbId', users.findByFb); app.get('/api/users/

我正在尝试用Node.js和Express和Angularjs编写一个应用程序

我是否允许AngularJS处理所有着陆请求?Node.js纯粹是为了API?这意味着Node.js中编写的所有路由都将如下所示:

app.get('/api/users', users.showAll);
app.post('/api/users', users.create);
app.get('/api/users/fb/:fbId', users.findByFb);
app.get('/api/users/:userId', users.show);
app.put('/api/users/:userId', users.update);
app.del('/api/users/:userId', users.del);
AngularJS将能够自行解析URL,例如localhost/users/Some Name

将两者集成在一起时,需要遵循哪些最佳实践

另外,是否建议将AngularJS和Node.js应用程序分为两个不同的应用程序?有什么方法可以做到这一点


提前谢谢

很明显,任何应用程序的设计和细微差别都会决定它应该如何设置,但您肯定可以让一个单页web应用程序以AJAX请求返回node.js服务器端API的方式运行。我已经用这种方式创建了许多中小型应用程序

Node.js可以按照您设计的方式处理您的API,但是您需要在Node中使用一些初始路径,用户最初会点击这些路径来打开HTML页面,该页面将引导angular.js应用程序并加载您需要的任何其他javascript和css库。您将定义该路由,然后在节点应用程序中设置静态资源,以便浏览器可以加载这些内容来启动angular应用程序

angular应用程序本身将包含在javascript文件中,这些文件将位于express应用程序的静态资源文件夹中。通常,像/js/myNgApp.js这样的东西可以开始工作,但是通过将控制器、指令、服务等分离到它们自己的js文件中,您可以获得更多的异国情调。这是你以后可以做的事情

一旦angular应用程序加载并在浏览器中运行,您只需要使用in angular来定义指向api in节点的ajax URL,然后让angular客户端对这些URL执行get或post(或其他)请求

如果应用程序中需要安全性,那么在加载angular应用程序之前,需要将其实现为页面和url。express的安全框架可以帮助您实现这一点。我用


在Chrome中,开发者工具(尤其是网络标签)将成为你最好的朋友

@BoxerBucks的答案非常准确。我在github上有一个Express/Angular/Bootstrap/Grunt的入门项目,可以帮助您上路:非常感谢您的建议,我一定会看看passport。。它似乎还具有OAuth功能,这将有助于验证api调用方。是的,passport具有与Twitter、Facebook和其他一些源集成的OAuth,或者您可以使用其他OAuth源。我从未使用过自己的OAuth源代码,但如果您使用了,您也可以连接到它。