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

MongoDB Mongoose模型名含°符号触发Node.js语法错误求助

问题本质与解决方案

这个错误和MongoDB、Mongoose完全无关,是JavaScript标识符(变量名、导出名称)的语法限制导致的——°符号不属于JavaScript合法的标识符字符,所以Node.js的ES模块加载器会抛出语法错误。

正确处理方式

你混淆了「代码里的模型变量名」和「MongoDB中的集合名称」:

  • 代码里的变量名必须符合JavaScript标识符规则,不能用°这类符号
  • 如果你想让MongoDB的集合名称包含°,只需要在定义Mongoose模型时手动指定集合名即可

示例代码:

import mongoose from 'mongoose';

// 定义Schema
const temperatureSchema = new mongoose.Schema({
  value: Number,
  timestamp: Date
});

// 变量名用合法标识符,第三个参数指定MongoDB集合名为带°的名称
const mCelsius = mongoose.model('mCelsius', temperatureSchema, 'm°celsius');

export default mCelsius;

为什么之前没问题?

旧版本Node.js对JavaScript标识符的解析规则更宽松,没有严格遵循ECMAScript标准,允许部分非标准字符作为标识符。但新版本Node.js收紧了规则,严格执行标准,所以现在会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:48:26