如何接受Node JS中的大量API请求

我最近开始学习Node JS。 事情进展得很好。 我看到一个在线教程,并在我的server.js文件中接受了GET请求。

由于我来自Java背景,有几个问题进入我的脑海,我在互联网上search他们,但无法find他们。

  1. 我需要接受request.js文件中的所有请求吗? 假设我有几百个GET API请求,我需要写在我的server.js文件,我觉得是节点JS中唯一的入口点。

例如:

var express=require("express"); var app=express(); app.get("/api/request1/",function(){ //some code here }) app.get("/api/request2/",function(){ //some code here }) . . . . app.get("/api/request100/",function(){ //some code here }) 

这会使我的代码变得繁琐而且难以pipe理。 正如我所说我有一个Java背景,我曾经在不同的Servlet中分离我的代码。

  1. 其次是有可能在节点JS中有另一个入口点。 由于我的应用程序是相当大的。 还有一种方法可以使用Node模块在不同模块中分离/分离我的代码,然后将它们包含在server.js中。

请说明一些好的资源或技术如何克服这个问题。

您可以轻松地模块化您的快速路线。

要按照您的示例:在您的项目中,使用以下内容创build一个目录routes和一个文件routes/api.js

 var express = require('express'); var router = express.Router(); router.get('/request1', function(req, res, next) { res.send('...'); }); router.get('/request2', function(req, res, next) { res.send('...'); }); module.exports = router; 

在你的server.js

 app.use('/api', require('./routes/api')); 

为了防止有人遇到同样的问题,可以参考Express路由文档

app.get(...)只是一个函数调用。 你可以轻松地做到这一点:

 require('routes1')(app); require('routes2')(app); 

那些模块导出function(app) { app.get(...); app.get(...); } function(app) { app.get(...); app.get(...); }

更好的是,Express.js(不是Node.js – Node.js就像JVM,Express就像Tomcat)应用程序可以挂载子应用程序:

 app.use('/api', require('subapp')); 

如果subapp是一个普通的Express.app,例如app.get('/request1', ...) ,那么挂载之后,你就可以使用/api/request1了。 (这只适用于整个层次结构;所以如果你想将你的/api/request1/api/request100分成10个文件,你可能需要使用第一种方法,或者重新考虑你的层次结构是如何工作的。

是的,你应该尽可能地保持与你的模块分离,因为我看到你已经开始学习快速结帐快速发生器模块,为您提供一个很好的小锅炉代码,以及开始时,以及构build一个大型项目也检查博客最佳实践,快速使用的expression结构