node.js ReferenceError:未定义服务器

时间:2017-02-02 23:17:41

标签: javascript node.js

以下代码来自 server.js ,导致我的服务器因错误而崩溃:

ReferenceError:未在Object中定义服务器。 (C:\ xampp \ htdocs \ api \ src \ server.js:17:18)在Module._compile(module.js:571:32)处于Object.Module._extensions..js(module.js:580:10) )在Module.load(module.js:488:32)的tryModuleLoad(module.js:447:12)处于Module.runMain的Function.Module._load(module.js:439:3)处(module.js:605) :10)在启动时运行(bootstrap_node.js:418:7)(bootstrap_node.js:139:9)at 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;

Mocha测试( __ 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 个答案:

答案 0 :(得分:1)

server未在任何地方定义。作为猜测,您可能希望将最后一行更改为:

module.exports = app;

答案 1 :(得分:1)

您要导出app。没有名为server的变量

module.exports = app;

然后,您可以使用app

require导入项目的其他位置