【问题标题】:Node.JS MongoDB SyntaxError: Invalid or unexpected tokenNode.JS MongoDB SyntaxError:无效或意外的令牌
【发布时间】:2025-12-25 11:55:12
【问题描述】:

我不明白出了什么问题。节点 v.16.4.2,NPM v7.18.1

const mongoose = require("mongoose");
// const dotenv = require('dotenv')
require('dotenv').config({path:'variables.env'});

mongoose.connect(process.env.MONGODB_URL, { useNewUrlParser: true}, err => {
    if (err){
        console.log(err);
    } else {
        console.log("Connected to database successfully");

    }
})

/* mongoose.js */
const db = mongoose.connection;

db.on('error', console.error.bind(console, 'connection error'));
db.once('open', ()=>{
  console.log('DB connected');
});

const express = require('express');
const app = express();
app.get('/', (req, res) => {
  Cat.find({}, (err, healings) => {
    if(err) return res.json(err);
    res.json(healings);
  });
});
app.listen(3000, () => {
  console.log('Connect 3000');
});

const userSchema = mongoose.Schema({
    emotion: Number,
    image: String,
    placeName: String,
    grade: Number,
    id: mongoose.Schema.Types.ObjectId,
});
  ​
const Healing = mongoose.model("user", userSchema); // 스키마 등록
var test = new Healing({ emotion: 1111, image: 'test', placeName:'where', grade:5 });
test.save();

//  const Cat = mongoose.model('Kitty', CatSchema);

错误是

/Users/Downloads/test2/mongoose.js:41

SyntaxError:无效或意外的令牌 在 Object.compileFunction (节点:vm:352:18) 在 wrapSafe (node:internal/modules/cjs/loader:1025:15) 在 Module._compile (node:internal/modules/cjs/loader:1059:27) 在 Object.Module._extensions..js (node:internal/modules/cjs/loader:1124:10) 在 Module.load (node:internal/modules/cjs/loader:975:32) 在 Function.Module._load (节点:internal/modules/cjs/loader:816:12) 在 Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12) 在节点:internal/main/run_main_module:17:47

【问题讨论】:

  • 您是否使用 UTF-8 以外的编码?尝试确保您的源代码文件采用 UTF-8 编码,然后重试。

标签: javascript node.js mongodb mongoose


【解决方案1】:

我认为这是一个编码问题。

请看,例如:How to fix `SyntaxError: Invalid or unexpected token` when trying to run Node.js app

尝试使用 UTF-8 编码保存您的源代码文件。

【讨论】:

    【解决方案2】:

    错误调用了第 41 行,这似乎是紧接在之前的空白行

    const Healing = ...
    

    当我将该行复制/粘贴到 Vim 中时,它显示 <200b>,这表明该行包含一个 zero-width space(以 UTF-8 正确编码)。

    【讨论】:

      最近更新 更多