Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么npm测试返回TypeError:app.use()在服务器传递给它时需要一个中间件函数?_Javascript_Node.js_Npm_Jestjs_Supertest - Fatal编程技术网

Javascript 为什么npm测试返回TypeError:app.use()在服务器传递给它时需要一个中间件函数?

Javascript 为什么npm测试返回TypeError:app.use()在服务器传递给它时需要一个中间件函数?,javascript,node.js,npm,jestjs,supertest,Javascript,Node.js,Npm,Jestjs,Supertest,我正在尝试为我的后端编写一些简单的测试,我正在遵循一个教程,其中有一个非常类似的代码可以运行,而我的代码却没有(他没有收到关于他的app.use()的抱怨)。为什么它抛出TypeError:app.use()需要一个中间件函数,我可以用什么替换当前代码来运行测试 这是我的密码: const express = require('express'); const request = require('supertest'); const app = express(); const api =

我正在尝试为我的后端编写一些简单的测试,我正在遵循一个教程,其中有一个非常类似的代码可以运行,而我的代码却没有(他没有收到关于他的app.use()的抱怨)。为什么它抛出TypeError:app.use()需要一个中间件函数,我可以用什么替换当前代码来运行测试

这是我的密码:

const express = require('express');
const request = require('supertest');
const app = express();

const api = require('../server');

// make api available
app.use(api);
//app.use(bodyParser);

describe('games', () => {
    it('should return a saved game', () => {
        // send a request
        return request(app)
            .post('/games')
            .send({title: 'test', released: '1995'})
            // verify response
            .expect(201)
            .expect(res => {
                const game = res.body;
                expect(game.title).toEqual('test');
                expect(game.released).toEqual('1995');
            });
    });
});
以下是来自控制台的错误:

"C:\Program Files\nodejs\node.exe" C:\Users\Bertinator\Desktop\web-exam\node_modules\react-scripts\scripts\test.js --colors --setupTestFrameworkScriptFile "C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.4\plugins\JavaScriptLanguage\helpers\jest-intellij\lib\jest-intellij-jasmine.js" --testPathPattern ^C:\\Users\\Bertinator\\Desktop\\web\-exam\\src\\backend\\__tests__\\game\.jest\.js$
 FAIL  src\backend\__tests__\game.jest.js
  ● Test suite failed to run

    TypeError: app.use() requires a middleware function

      at Function.use (node_modules/express/lib/application.js:210:11)
      at Object.<anonymous> (src/backend/__tests__/game.jest.js:10:5)
          at <anonymous>

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        1.761s
“C:\Program Files\nodejs\node.exe”C:\Users\Bertinator\Desktop\web test\node\U modules\react scripts\scripts\test.js--Color--SetupTestFrameworkScript文件“C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.4\plugins\JavaScriptLanguage\helpers\jest IntelliJ\lib\jest IntelliJ jasmine.js”--testPathPattern ^C:\\Users\\Bertinator\\Desktop\\web \-exam\\src\\backend\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\$
未能通过src\backend\\测试\u\\ game.jest.js
● 测试套件无法运行
TypeError:app.use()需要一个中间件函数
在Function.use(node_modules/express/lib/application.js:210:11)
反对。(src/backend/_测试_/game.jest.js:10:5)
在
测试套件:1个失败,共1个
测试:共0项
快照:共0个
时间:1.761s
我通过添加

module.exports = app;
到我的服务器.js。Jest无法将其用作有效的中间件,因此出现错误。

app.use()
至少包含两个参数,url和中间件。我看不到
。/server/
的内容,因此无法给出建议


要真正提供一个好的答案,您应该显示
。/server

的内容,它已经在我的文件底部,我得到了相同的错误