我已经在Node.js中创建了一个端点。
以下是终点:
app.post('/processMyRequests',function(req,res){
switch(req.body.functionality) {
case "functionalityName1":
jsFileName1.functionA(req,res);
break;
case "functionalityName2":
jsFileName2.functionB(req,res);
break;
default:
res.send("Sorry for that");
break;
}
});
在每个函数中,均会完成对API的调用,然后处理数据,最后将响应发送回去。
我的问题:
如果有人可以共享实时用例,那将很高兴。谢谢
答案 0 :(得分:2)
问题一的示例:
// GET multiple records
app.get('/functionality1',function(req,res){
//Unique logic for functionality
});
// GET a record by an 'id' field
app.get('/functionality1/:id',function(req,res){
//Unique logic for functionality
});
// POST a new record
app.post('/functionality1',function(req,res){
//Unique logic for functionality
});
// PUT (update) a record
app.put('/functionality1',function(req,res){
//Unique logic for functionality
});
// DELETE a record
app.delete('/functionality1',function(req,res){
//Unique logic for functionality
});
app.get('/functionality2',function(req,res){
//Unique logic for functionality
});
...
相对于必须在一个API端点中消化许多技术上不相关的逻辑,这使您对每个端点所发生的事情有了更清晰的了解。总结一下,最好使端点的目的和范围清晰明了。
这实际上取决于逻辑的实现方式。显然,Node.js是单线程的。这意味着它一次只能处理1个“流”的代码(没有真正的并发或并行性)。但是,Node gets around this through its event-loop。您可能看到的问题取决于是否编写了asynchronous (non-blocking) code, or synchronous (blocking) code。在Node中,几乎总是更好,建议编写非阻塞代码。这有助于防止阻塞事件循环,这意味着您的节点应用程序可以在执行其他操作的同时,例如等待文件读完,API调用完成或承诺解决。 编写阻止代码将导致应用程序出现瓶颈/“挂起”,最终用户将其视为更高的延迟时间
具有多条路线,或一条路线无法解决此问题。更多有关如何利用(或不利用)事件循环的信息。尽可能多地使用异步代码非常重要。
一些非常有用的资源: