Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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 试图在我的nodejs api中运行Jest/Supertest,但不断收到一个TypeError:“;app.address不是一个函数;_Javascript_Node.js_Jestjs_Supertest - Fatal编程技术网

Javascript 试图在我的nodejs api中运行Jest/Supertest,但不断收到一个TypeError:“;app.address不是一个函数;

Javascript 试图在我的nodejs api中运行Jest/Supertest,但不断收到一个TypeError:“;app.address不是一个函数;,javascript,node.js,jestjs,supertest,Javascript,Node.js,Jestjs,Supertest,我正在尝试为我的nodejs api开始集成/单元测试,但无法通过supertest正确连接到app.js文件 下面的代码写在我的main.test.js文件中 const app = require('../app') const supertest = require('supertest'); const request = supertest(app) it('posts color', async () => { await request.post('/postCol

我正在尝试为我的nodejs api开始集成/单元测试,但无法通过supertest正确连接到app.js文件

下面的代码写在我的main.test.js文件中

const app = require('../app')
const supertest = require('supertest');
const request = supertest(app)

it('posts color', async () => {
    await request.post('/postColor')
    .send({
        "Color": "Green",
}).expect(201)
})
下面是我的app.js文件

import express from 'express';
const app = express();

export default app;
我将index.js文件拆分为app.js和index.js文件

My index.js从app.js导入应用程序,并将其设置为侦听我需要的任何端口。 My main.test.js文件从app.js导入app,并根据supertest使用它,如上所示

我一直得到以下错误

TypeError:app.address不是函数

  4 |
  5 | it('posts color', async () => {
> 6 |     await request.post('/postColor')
    |                   ^

我通过在main.test.js文件中添加以下内容解决了此问题:

const app = require('../app').default

您混合了导出和require,可能需要
require('../app')。默认值为
。但是通过调试找出当前测试中的
app
会有所帮助。这很有帮助,但它让我回到了上一个问题,即我的api端点返回的是404而不是201。我觉得整个结构缺少了一些东西@jonrsharpeWell这是您对服务器的期望和实际实现之间的一个独立问题。你现在必须给出一个答案,因为你的示例应用程序没有任何端点,所以它总是404。让我知道你的想法。