Я вижу, что есть тонна постов на эту тему, но я не видел ни одного, связанного с Express и моей конкретной проблемой, а именно:
import * as express from 'express';
import { Request, Response, Application } from 'express'; // <-- Error here
выдает мне ошибку (Module has no imported member
для 'Request'
, 'Response'
и 'Application')
.
я вижу, что в node_modules
есть файлы request.js
, response.js
и application.js
, перечисленные в подпункте /lib
На основании трассировки ошибок, я предполагаю, что Express не проверяет в подкаталоге * 1015. * Как я могу принудить / направить систему для проверки в подкаталоге /lib
при использовании import
? (Или это не проблема, и вообще есть еще одна проблема?).
Я пробовал import { Request, Response, Application } from 'express/lib'
, import * as expressLib from 'express/lib
, а затем import {Request, Response, Application } from expressLib
, но ни один из них не работал.
=============================================
Примечание: у меня есть следующий кодниже imports
... Поскольку типы объектов Request
и Response
являются типами объектов, я предполагаю, что они должны оставаться в верхнем регистре?
import * as express from 'express';
// import * as expressLib from 'express/lib'
import { Request, Response, Application } from 'express';
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');
import * as jwt from 'jsonwebtoken';
import * as fs from "fs";
const app: Application = express();
app.use(bodyParser.json());
app.route('api/login')
.post(loginRoute);
const RSA_PRIVATE_KEY = fs.readFileSync('/demos/private.key');
export function loginRoute(req: Request, res: Response) {
const email = req.body.email,
password = req.body.password;
if (validateEmailAndPassword()) {
const userId = findUserIdForEmail(email);
const jwtBearerToken = jwt.sign({}, RSA_PRIVATE_KEY, {
algorithm: 'RS256',
expiresIn: 120,
subject: userId
});
// res.cookie("SESSIONID", jwtBearerToken, {httpOnly: true, secure: true});
res.status(300).json({
idToken: jwtBearerToken,
expiresIn: ""
})
} else {
res.sendStatus(401);
}
}
Большое спасибо!