6

根据文档,从纯 js 中使用头盔非常容易:

const express = require('express')
const helmet = require('helmet')

const app = express()

app.use(helmet())

但是我怎样才能从打字稿中使用它呢?Typings 文件导出一堆东西,其中一个是头盔接口,不能作为函数调用。我可以这样导入,但不知道接下来要做什么,我应该传递给 app.use 什么?

import * as helmet from 'helmet'

我已经导入了最新版本的头盔和打字:

"@types/helmet": "0.0.43",
"helmet": "^3.18.0"
4

6 回答 6

11

终端

npm install helmet
npm install @types/helmet --save-dev

应用程序.ts

import Helmet from "helmet";

const app = express();
app.use(Helmet());

初始化 express 应用程序对象后,头盔中间件应该是您激活的第一件事。还要注意标题名称

于 2019-12-22T18:58:59.467 回答
5

08.05.2021开始,4.6.0我可以在没有任何类型安装的 Typescript 项目中执行以下操作:

import helmet from 'helmet';
...

app.use(helmet());

以防万一像我这样挣扎的人。

于 2021-05-08T13:46:27.030 回答
4

它的具体使用方法,只需在 app.use 方法中调用安全帽

import * as helmet from "helmet"; // Security

....


    /**
     * Create our app w/ express
     */
    this.app = express();
    this.app.use(helmet());

有关更多详细信息,请访问此链接以获取带有 typescript 的快速应用程序

于 2019-05-13T16:54:49.940 回答
1

根据@types/helmet,该包已被弃用,因为头盔现在有自己的类型定义。所以我不建议你安装这个@types/helmet包。

要解决此问题,请从文件中删除头盔依赖package.json项,然后运行以下命令安装最新版本helmet

npm i helmet

于 2021-05-07T03:53:36.730 回答
0

以这种方式导入头盔:

import * as helmet from 'helmet';

以避免出现以下警告:

TypeError: helmet_1.default is not a function
于 2021-04-09T22:11:58.223 回答
0

启用该esModuleInterop选项,tsconfig.json警告将消失。

之后,您不需要import * as helmet.

于 2022-01-09T14:04:13.217 回答