【发布时间】:2016-05-25 20:59:27
【问题描述】:
我正在 Node.js 中开发一个需要发送多个 http 请求的脚本。我真的很熟悉Angular's $http service works 的方式。我喜欢 Promise 和整体语法的使用,我知道它的优缺点等等。
我可以在 Node.js 应用程序中以任何方式使用 Angular $http 服务吗?我希望这听起来不会太傻。
【问题讨论】:
我正在 Node.js 中开发一个需要发送多个 http 请求的脚本。我真的很熟悉Angular's $http service works 的方式。我喜欢 Promise 和整体语法的使用,我知道它的优缺点等等。
我可以在 Node.js 应用程序中以任何方式使用 Angular $http 服务吗?我希望这听起来不会太傻。
【问题讨论】:
对于像 Angular 中的承诺,您可以使用 q。实际上 angular 使用了 q 的一个子集。
【讨论】:
冒着自我推销的风险,我写了一个NPM module,它提供了承诺的HTTP方法。
【讨论】:
$http 在非 2xx 响应代码上返回错误,这将返回成功。不幸的是,这没有在文档中突出显示。
这里有一个 NPM 项目,用于在服务器上的节点中运行 AngularJS:https://www.npmjs.com/package/angularjs-server
话虽如此,您可能想看看 Bluebird 或者只是在 Node.js 中使用 ES6 Promise。由于 Angular 是一个客户端框架,它有很多你在服务器上不需要的东西。
【讨论】:
node 内置了对来自http module 的简单 http 请求的支持 - 但是,如果您想要更简单、更易于管理的东西,我会推荐 Restify client API
var restify = require('restify');
// Creates a JSON client
var client = restify.createJsonClient({
url: 'https://us-east-1.api.joyent.com'
});
client.basicAuth('$login', '$password');
client.get('/my/machines', function(err, req, res, obj) {
assert.ifError(err);
console.log(JSON.stringify(obj, null, 2));
});
【讨论】: