我有一个纯粹的前端 javascript 项目,其中包含许多模型,这些模型封装了与各种 RESTful Web 服务的不同交互。我的目标是将这些模型放入它们自己的 npm 模块中,以便让它们在我正在编写的新节点应用程序中使用服务器端。
模型使用 XMLHttpRequest 对象,这显然在服务器上是未定义的。我的模型中不能 require('http') ,因为当我尝试为客户端构建时,browserify 会抛出错误。
我如何处理可以在服务器和客户端上工作的 HTTP 请求?我想要的是这样的:
var ajax = {
get: function (url, opts) {
if (typeof XMLHttpRequest === 'undefined') {
// is node app
var http = require('http');
...
} else {
// is browser app
var xhr = new XMLHttpRequest();
...
}
},
post: ...
};