Я сделал свой первый сервер, используя экспресс в машинописи, и он отлично работает
import app from './Server'
const server = app.listen(8080, '0.0.0.0', () => {
console.log("Server is listening on standard port 80...");
});
export default server;
Теперь я пытаюсь проверить маршруты, хранящиеся в приложении:
import express from 'express';
import * as bodyParser from "body-parser";
const app = express();
app.use(bodyParser.json());
app.get("/", (req: express.Request, res: express.Response) => {
res.status(200).send("SUCCESS");
});
export default app;
Используя этот тест:
import * as chai from 'chai';
import chaiHttp = require('chai-http');
chai.use(chaiHttp);
import server from '../src';
describe("LogAPI", () => {
describe('Base express tests', () => {
it("Should return 'SUCCESS' if GET /", async () => {
return chai.request(server).get("/").then(res => {
chai.expect(res.body).to.equal("SUCCESS");
})
});
it("Should return status-code 200 by calling GET /", async () => {
return chai.request(server).get("/").then(res => {
chai.expect(res.status).to.equal(200);
})
});
});
});
Но даже когда сам сервер работает, запуск теста с
mocha --require ts-node/register ./../test/**/*.ts
выдает мне эту ошибку:
/ Users /.../NotificationService / src / Server / index.js: 5 var app = express_1.default ();^ TypeError: express_1.default не является функцией в Object.(/ Users /.../ NotificationService / src / Server / inde> x.js: 5: 28)
Я использую модуль es6 target и commonjs.Как правильно проверить мой сервер?
Обновление 1 Теперь я немного повозился, и оказалось, что удаление метода default()
из скомпилированного кода разрешило что-то.
Теперь я получаю
/ Users /.../ NotificationService/test/node_modules/@types/chai-http/index.d.ts: 13 import * как запрос от 'superagent';Ошибка синтаксиса: неожиданный импорт токена
Обновление 2 Мой ts-config.json:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"outDir": "./../out“,
"strict": true,
"esModuleInterop": true
}
}