You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express项目报错:Cannot read properties of undefined (reading 'use') 求助

错误原因及解决方法

错误原因

你代码里的这两行存在语法错误:

app.use(express.json()).
app.use(helmet());

第一行末尾多了一个多余的句点,且下一行错误地重复使用app.use。JavaScript会将其解析为(app.use(express.json())).app.use(helmet())——app.use()返回的是app对象,但该对象并没有app属性,因此(app.use(express.json())).app的值为undefined,调用undefined.use()就会触发Cannot read properties of undefined (reading 'use')错误。

解决方法

有两种修复方式,任选其一即可:

方式1:移除多余句点,保持独立调用

将代码修改为:

app.use(express.json());
app.use(helmet());

方式2:正确使用链式调用

如果想保留链式写法,将下一行的app.use改为.use:

app.use(express.json())
   .use(helmet());

修复后的完整代码示例:

import express from "express";
import bodyParser from "body-parser";
import mongoose from "mongoose";
import cors from "cors";
import dotenv from "dotenv";
import multer from "multer";
import helmet from "helmet";
import morgan from "morgan";
import path from "path";  
import { fileURLToPath } from "url"; 

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
dotenv.config();
const app = express();
app.use(express.json());
app.use(helmet());
app.use(helmet.crossOriginResourcePolicy({policy:"cross-origin"}));
app.use(morgan("common"));
app.use(bodyParser.json({limit: "30mb", extended : true}));
app.use(bodyParser.urlencoded({limit:"30mb", extended:true}));
app.use(cors()) //Cross Orign Resource Policies. 
app.use("/assets", express.static(path.join(__dirname, 'public/assets')));

内容的提问来源于stack exchange,提问作者Bharadwaj Srikaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 04:50:01