Javascript 获得;TypeError:对象不是函数;在forEach循环中使用supertest/superagent时
我使用supertest按照相同的规则测试一组URLJavascript 获得;TypeError:对象不是函数;在forEach循环中使用supertest/superagent时,javascript,node.js,supertest,superagent,Javascript,Node.js,Supertest,Superagent,我使用supertest按照相同的规则测试一组URL var urls = [ "https://www.example.com", "https://www.example2.com" ]; urls.forEach(function (url) { console.log('begin'); request = request(url) .get('') .expect(200) .end(function (
var urls = [
"https://www.example.com",
"https://www.example2.com"
];
urls.forEach(function (url) {
console.log('begin');
request = request(url)
.get('')
.expect(200)
.end(function (err, res) {
// Check for something
});
console.log('end');
});
当数组中只有一个URL时,它就可以正常工作。但是,如果我添加了第二个,则输出失败:
begin
end
begin
file.js:11
request = request(json)
^
TypeError: object is not a function
我的猜测是,我不能让supertest的一个实例运行两次,但我似乎找不到解决这个问题的方法。感谢您的帮助。这是因为您的作业
请求=请求(url)
覆盖了请求功能
var urls = [
"https://www.example.com",
"https://www.example2.com"];
urls.forEach(function (url) {
console.log('begin');
var r = request(url)
.get('')
.expect(200)
.end(function (err, res) {
// Check for something
});
console.log('end');
});
在第一次迭代中,
request
指的是一个全局函数,但当计算request=request(url)
语句时,request
的值将更改为request(url)返回的值
因此,在第二次迭代中,请求不再是您期望的功能。这是因为您的分配请求=请求(url)
覆盖了请求功能
var urls = [
"https://www.example.com",
"https://www.example2.com"];
urls.forEach(function (url) {
console.log('begin');
var r = request(url)
.get('')
.expect(200)
.end(function (err, res) {
// Check for something
});
console.log('end');
});
在第一次迭代中,
request
指的是一个全局函数,但当计算request=request(url)
语句时,request
的值将更改为request(url)返回的值
因此,在第二次迭代中,请求不再是您期望的功能。这是因为您的分配请求=请求(url)
覆盖了请求功能
var urls = [
"https://www.example.com",
"https://www.example2.com"];
urls.forEach(function (url) {
console.log('begin');
var r = request(url)
.get('')
.expect(200)
.end(function (err, res) {
// Check for something
});
console.log('end');
});
在第一次迭代中,
request
指的是一个全局函数,但当计算request=request(url)
语句时,request
的值将更改为request(url)返回的值
因此,在第二次迭代中,请求不再是您期望的功能。这是因为您的分配请求=请求(url)
覆盖了请求功能
var urls = [
"https://www.example.com",
"https://www.example2.com"];
urls.forEach(function (url) {
console.log('begin');
var r = request(url)
.get('')
.expect(200)
.end(function (err, res) {
// Check for something
});
console.log('end');
});
在第一次迭代中,request
指的是一个全局函数,但当计算request=request(url)
语句时,request
的值将更改为request(url)返回的值因此,在第二次迭代中,请求不再是您期望的功能。更改以下内容
request = request(url)
.get('')
.expect(200)
.end(function (err, res) {
// Check for something
});
到
更改以下内容
request = request(url)
.get('')
.expect(200)
.end(function (err, res) {
// Check for something
});
到
更改以下内容
request = request(url)
.get('')
.expect(200)
.end(function (err, res) {
// Check for something
});
到
更改以下内容
request = request(url)
.get('')
.expect(200)
.end(function (err, res) {
// Check for something
});
到
任何时候,尽管我迟到了2分钟:)任何时候,尽管我迟到了2分钟:)任何时候,尽管我迟到了2分钟:)任何时候,尽管我迟到了2分钟:)