“Node.js的X包装”通常意味着什么?

例如, google-speech-api包被描述为“Google语音API节点包装器”。

在这种情况下究竟是什么包装?

在这种情况下,“包装器”是一个图书馆,提供一个方便的服务或图书馆接口,否则会更不方便使用。 包装器将本机API“包装”成更方便的forms。

例如,Google Speech API通过HTTP请求使用。 这个页面给出了这个例子:

 curl -X POST \ --data-binary @alsalam-alikum.flac \ --user-agent 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7' \ --header 'Content-Type: audio/x-flac; rate=16000;' \ 'https://www.google.com/speech-api/v1/recognize?client=chromium&lang=ar-QA&maxresults=10' 

(请注意,该页面基于API的v1版本,但是API现在是v2版本,但是这里说的并不重要)。

您绝对可以通过使用库存Node.js函数(即没有包装器)发出相应的HTTP请求来执行操作,但是:

  1. 你将不得不处理一些你不需要处理的细节。 例如,查询始终以stringhttps://www.google.com/speech-api/v1/recognize开头。 如果您手动执行,则必须始终指定它。 每个查询都可能需要设置标题。 您可能需要传递每个查询的API密钥。 有了一个包装器,事情是不依赖于你的具体情况是由包装器和依赖于你的东西,而且是常数(如API键),一旦设置可以设置一次,只有一次。

  2. 您的代码不会清楚地反映您正在尝试执行的操作。 有人在没有Google语音API知识的情况下阅读它就会看到你正在做一个HTTP查询,但是不知道你在做什么。 使用包装器,你可以写出更类似于你想要做的事情(从上面链接的google-speech-api页面):

     var speech = require('google-speech-api'); var opts = { file: 'speech.mp3', key: '<Google API Key>' }; speech(opts, function (err, results) { console.log(results); // [{result: [{alternative: [{transcript: '...'}]}]}] }); 

    当然,阅读这篇文章的人会希望阅读包装文件,但至less他们会很快到达目的地,而不是通过一大堆无关紧要的细节。