2017-02-28 42 views
0

我正在試圖節點測試基本的GET路由節點測試與摩卡和柴 - >錯誤..類型錯誤:app.address不是一個函數

TypeError: app.address is not a function 

我檢索時,下面的錯誤我應用程序代碼,我想測試,但我沒有看到任何對我的代碼中的「地址」錯誤的引用,所以我不知道要修復什麼。

任何人的建議?

下面是我的單元測試

let chai = require('chai'); 
let chaiHttp = require('chai-http'); 
let app = require('../src/app'); 
let should = chai.should(); 

chai.use(chaiHttp); 
describe('/POST getRating',() => { 
     it('it should not POST a book without pages field', (done) => { 
     chai.request(app) 
      .get('/') 
      // .send(testData1) 
      .end((err, res) => { 
       console.log('ERROR', err); 
       res.should.have.status(200); 
       res.body.should.be.a('string'); 
       done(); 
      }); 
     }); 

    }); 

下面是我的app.js代碼

import express from 'express'; 
import mongoose from 'mongoose'; 
import bodyParser from 'body-parser'; 
import config from './config'; 
import http from 'http' 
mongoose.Promise = Promise; 
import rating from './components'; 

const cors = config.cors 
const mongouri = config.mongoURI; 
mongoose.connect(mongouri); 

const app = express(); 

app.use(cors.cors(cors.origins)); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 


app.get("/", (req, res) => res.json({message: "Welcome to our Bookstore!"})); 

app.use('/api/rating', rating); 

const port = normalizePort(process.env.PORT || '3000'); 
app.set('port', port); 

const server = http.createServer(app); 

server.listen(port); 
server.on('listening', onListening); 

function normalizePort(val) { 
    let port = parseInt(val, 10); 

    if (isNaN(port)) { 
    return val; 
    } 

    if (port >= 0) { 
    return port; 
    } 

    return false; 
} 

function onListening() { 
    var addr = server.address(); 
    var bind = typeof addr === 'string' 
    ? 'pipe ' + addr 
    : 'port ' + addr.port; 
    console.log('Listening on ' + bind); 
} 

export default app; 
+0

該工程!非常感謝!!! – andre

回答

6

這可能是因爲transpilation的問題。嘗試:

let app = require('../src/app').default; 
+0

這解決了我的一天;) – chemitaxis

相關問題