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

NodeJS中使用Mongoose创建Model报错:ReferenceError: string未定义

问题描述

尝试在Node.js中使用Mongoose创建User模型,编写的代码如下:

const mongoose = require ('mongoose');
const User = mongoose.model('User',{
name:{
type:string
},
lastname:{
type:string
},
age: {
type:Number
}
})
module.exports = User;

运行后触发如下错误:

C:\Users\models\user.js:6
type:string
^
ReferenceError: string is not defined
at Object. (C:\Users\moham\Desktop\backend\models\user.js:6:14)
at Module._compile (node:internal/modules/cjs/loader:1159:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
at Module.load (node:internal/modules/cjs/loader:1037:32)
at Module._load (node:internal/modules/cjs/loader:878:12)
at Module.require (node:internal/modules/cjs/loader:1061:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object. (C:\Users\moham\Desktop\backend\server.js:2:14)
at Module._compile (node:internal/modules/cjs/loader:1159:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
Node.js v18.12.1

错误原因

代码中使用的小写string不是合法的全局变量,Mongoose Schema定义里的类型需要使用首字母大写的String(JavaScript内置对象构造器),小写形式会被识别为未定义的标识符,从而抛出引用错误。

修正后的代码
const mongoose = require('mongoose');
const User = mongoose.model('User', {
  name: {
    type: String // 改为大写的String
  },
  lastname: {
    type: String // 改为大写的String
  },
  age: {
    type: Number
  }
});

module.exports = User;
补充说明

Mongoose中所有Schema字段类型都需要使用首字母大写的构造函数形式,比如String、Number、Date、Boolean等,这些都是JavaScript的内置对象,小写的类型名不属于合法的全局标识符,会导致未定义错误。

内容的提问来源于stack exchange,提问作者Mohamed Bouneb

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:40:29