【发布时间】:2021-04-09 12:02:45
【问题描述】:
你好,所以我不知道这里有什么问题,所以当我运行我的 NodeJS 服务器时,猫鼬 index.d.ts 抛出了多个我不知道的错误,我尝试忽略 tsconfig 中的 node_modules但我好像没中奖
收到错误:我正在提供 pastebin 链接,原因是回溯很长,我不想删除潜在错误: pastebin link having all error message
错误标头
node_modules/@types/mongoose/index.d.ts:79:1 - error TS6200: Definitions of the following identifiers conflict with those in another file: DocumentDefinition, FilterQuery, UpdateQuery, NativeError, Mongoose, SchemaTypes, STATES, connection, connections, models, mongo, version, CastError, ConnectionOptions, Collection, Connection, disconnected, connected, connecting, disconnecting, uninitialized, Error, QueryCursor, VirtualType, Schema, SchemaTypeOpts, Subdocument, Array, DocumentArray, Buffer, ObjectId, ObjectIdConstructor, Decimal128, Map, mquery, Aggregate, SchemaType, Promise, PromiseProvider, Model, Document, ModelUpdateOptions
我的 tsonfig
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"target": "es6",
"noImplicitAny": true,
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist",
"baseUrl": ".",
"paths": {
"*": [
"node_modules/*",
"src/types/*"
]
}
},
"include": [
"src/server.ts"
],
"exclude": [
"./node_modules/"
]
}
我的基础服务器设置:
import express, { Application } from 'express';
import { config } from 'dotenv';
import mongoose, { CastError, ConnectOptions } from 'mongoose';
import expressSession from 'express-session';
import MongoStore, { MongoDBStore } from 'connect-mongodb-session';
import cors from 'cors';
config();
const app: Application = express();
enum BaseUrl {
dev = 'http://localhost:3000',
prod = ''
}
const corsOptions = {
origin: process.env.NODE_ENV === 'production' ? BaseUrl.prod : BaseUrl.dev,
credentials: true
};
const mongoURI = process.env.mongoURI;
//======================================================Middleware==============================================================
app.use(cors(corsOptions));
const mongoStore = MongoStore(expressSession);
const store: MongoDBStore = new mongoStore({
collection: 'usersession',
uri: mongoURI,
expires: 10 * 60 * 60 * 24 * 1000
});
const isCookieSecure: boolean = process.env.NODE_ENV === 'production' ? true : false;
app.use(
expressSession({
secret: process.env.session_secret,
name: '_sid',
resave: false,
saveUninitialized: false,
store: store,
cookie: {
httpOnly: true,
maxAge: 10 * 60 * 60 * 24 * 1000,
secure: isCookieSecure,
sameSite: false
}
})
);
//================================================MongoDB Connection & Configs==================================================
const connectionOptions: ConnectOptions = {
useCreateIndex: true,
useFindAndModify: false,
useNewUrlParser: true,
useUnifiedTopology: true
};
mongoose.connect(mongoURI, connectionOptions, (error: CastError) => {
if (error) {
return console.error(error.message);
}
return console.log('Connection to MongoDB was successful');
});
//===============================================Server Connection & Configd====================================================
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => {
console.log(`Server started on PORT ${PORT}`);
});
【问题讨论】:
标签: node.js typescript mongoose