2017-02-02 5 views
0

以下のコードがあると定義されていない、エラーでクラッシュして自分のサーバーを引き起こしている:はにReferenceErrorをNode.jsの:サーバーは<strong>server.js</strong>から

にReferenceError:サーバーはオブジェクトで定義されていません。 Object.Module._extensions..js(module.js:580:10)にあるModule._compile(module.js:571:32)のファイル(C:\ xampp \ htdocs \ api \ src \ server.js:17:18) Module.runMain(module.js:605)のFunction.Module._load(module.js:439:3)のtryModuleLoad(module.js:447:12)のModule.load(module.js:488:32) :実行時10)(bootstrap_node.js:418:7)起動時(bootstrap_node.js:139:9)でbootstrap_node.js:533:3

var express = require('express'); 
var body_parser = require('body-parser'); 
var app = express() 

// Port config 
var port = 3000; 

app.use(body_parser.json()); 

// Use prefix of api 
app.use('/api', require('../routes/api.js')(express)); 

app.listen(port, function(){ 
    console.log('Server Active on', port); 
}); 

module.exports = server; 

モカ試験(__app.js

var request = require('supertest'); 

describe('API', function() { 

var server; 

beforeEach(function() { 
    server = require('../src/server.js'); 
}); 

afterEach(function() { 
    server.close(); 
}); 

it('/ should return specified object.', function (done) { 
    request(server) 
    .get('/api/') 
    .set('Accept', 'application/json') 
    .expect('Content-Type', /json/) 
    .expect(200, {"hello": "world"}, done); 
}); 

it('/status should return specified healthy:true', function (done) { 
    request(server) 
    .get('/api/status') 
    .set('Accept', 'application/json') 
    .expect('Content-Type', /json/) 
    .expect(200, {"healthy": true}, done); 
}); 

it('/user/id should return user object with id.', function (done) { 
    var fakeUserID = 374; 
    request(server) 
    .get('/api/user/347' + fakeUserID) 
    .set('Accept', 'application/json') 
    .expect('Content-Type', /json/) 
    .expect(200, {user: {id: fakeUserID}}, done); 
    }); 
}); 

パッケージがありませんか?私は同じ正確なコードでビデオを見ているし、サーバーをクラッシュさせません。

+2

エラーを使用してプロジェクトの他の場所appをインポートすることができます存在しないかなり明白と思われます変数 'server'は存在しません。 'server'は何を期待していますか?なぜあなたはそのモジュールから何かをエクスポートしていますか?エラーを再現する最も単純な例: 'module.exports = foo;'をファイルに入れて実行します。 'foo'が定義されていないと不平を言うでしょう。これは、Node、nvm、express、または任意のライブラリとは関係ありません。それはJavaScriptの仕組みです:あなたは変数が存在しないのを読むことはできません。 –

+0

私は知っている、私はそれを得る。しかし、それは私が正確に同じコードで見ているものに取り組んでいるので、何かが続いています。 – Scary

+0

*「私が見ているものに取り組んでいます」* 'server'はどこかで定義されているか、' server'を使用していません。私たちはビデオを見ることができないので、私たちは言うことができません。私たちが言うことができるのは、あなたのコードで 'server'を使うことが問題だということだけです。 –

答えて

1

serverはどこにも定義されていません。あなたはappをエクスポートする

module.exports = app; 
1

:推測として、あなたはおそらくに最後の行を変更したいです。 、あなたがmodule.exports` `に` server`を割り当てるしようとしている:server呼ばませ変数は

module.exports = app;

あなたはその後、require

関連する問題