在Node.js中替换$ .ajax()

时间:2016-04-14 22:05:21

标签: javascript jquery ajax node.js http

我一直在使用jQuery的$ .ajax()功能来从我的Node服务器向其他外部API服务器发出异步http请求。

我现在想要升级我的库,但我得到

....
/jquery/node_modules/jsdom/lib/jsdom/level1/core.js:418
   set nodeName() { throw new core.DOMException();},
               ^^

SyntaxError: Setter must have exactly one formal parameter.
  1. 如何解决此错误?
  2. 是否有任何与$.ajax()同等灵活的库?我对承诺 $。ajaxPrefilter()功能特别感兴趣。

1 个答案:

答案 0 :(得分:2)

是的,节点有一个名为request的模块,它可以比你$.ajax可能做的更多。他们页面的基本示例:

var request = require('request');
request('http://www.google.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body) // Show the HTML for the Google homepage.
  }
})

https://github.com/request/request

就承诺而言,您可以通过像bluebird这样的图书馆宣传您想要的任何内容:http://bluebirdjs.com/docs/getting-started.html

服务器上的jQuery是完全没必要的 - 只需快速撕掉绑带,它就会减少伤害:)

修改

添加默认值非常简单。只是做

var req = request.defaults({
  token: myToken,
  ...
})

var payload = { ... }

req.get(payload, function(err, res, body){ 
  ... 
})