2016-05-05 27 views
8

Sorunumun nodejs kodları üzerinde sınanmasıyla ilgili gidermek için yardıma ihtiyacım var. Ben mocha ve süper kullanıyorum. En üst düzeydeki uygulama ile karıştırıldım. Çözmeyi bilmiyorum. Bir dosyayı indirmeyi otomatikleştirmeye çalışıyorum.TypeError: undefined supertest öğesinin 'address' özelliği okunamıyor

`describe('GET /entry/:entryId/file/:id/download', function(){ 
it('should pass download function', function(done){ 
    this.timeout(15000); 
    request(app.webServer) 
    .get('/entry/543CGsdadtrE/file/wDRDasdDASAS/download') 
    .set('Authorization', 'Bearer eyJ0eXAiOiJKV1QiLCJhbGco') 
    .expect(200) 
    .end(function(err, res){ 
    if (err) return done(err); 
    console.log(err, res); 
    done(); 
}); 
}); 
}); 
+0

yanlış i bana – Saitama

+0

bro yardımcı olabilir umut diyor ki senin /node-modules/supertest/lib/test.js ile ilgili bir sorun. ve test.js'ye baktığımda bu – Saitama

+0

'Test.prototype.serverAddress = işlevini (uygulama, yol) { var addr = app.address(); if (! Addr) this._server = app.listen (0); var port = app.address(). var protokol = app instanceof https.Server? 'https': 'http'; dönüş protokolü + ': //127.0.0.1:' + bağlantı noktası + yolu; }; ' – Saitama

cevap

9

Ekspres bir uygulamayı test ederken mocha'dan benzer bir hata aldım. Hatanın tam metni:

0 passing (185ms) 
2 failing 

1) loading express responds to /: 
TypeError: app.address is not a function 
    at Test.serverAddress (test.js:55:18) 
    at new Test (test.js:36:12) 
    at Object.obj.(anonymous function) [as get] (index.js:25:14) 
    at Context.testSlash (test.js:12:14) 

2) loading express 404 everything else: 
TypeError: app.address is not a function 
    at Test.serverAddress (test.js:55:18) 
    at new Test (test.js:36:12) 
    at Object.obj.(anonymous function) [as get] (index.js:25:14) 
    at Context.testPath (test.js:17:14) 

bu hatayı karşı karşıya

module.exports = app 
3

typescript kullanıcıları, sunucu nesnesini yani benim ekspres server.js bu ekleyerek ihracat ile düzelttim, iki şeyi kontrol edin:

  1. ekspres sunucu module.exports = app (@Collin D sayesinde)
  2. Kullanım import * as app from "./app"olmalıdır ben zaten o teşekkür şunlardır yerine import app from "./app"
+0

Bu benim problemimi çözdü, teşekkürler! – user752746

+0

@Saitama Bu eski olduğunu biliyorum ama bunu benim için de çözdüğü gibi cevap olarak işaretlemelisiniz. – Zacho

İlgili konular