Express.js中JavaScript代码出现Unexpected Token错误求助
嘿,我最近写Express和Mongoose的代码时踩了个烦人的坑——文档底部一直弹出「Unexpected Token」错误。我去翻了相关的问题,发现大家都说大概率是代码片段缺失,但我把自己的代码翻来覆去检查了好几遍,确定没有漏写内容啊!
先贴一下我目前的代码(后面bodyParser部分还没写完,但前面的部分我确认过了):
const express = require("express"); const app = express(); const mongoose = require("mongoose") mongoose.connect("mongodb://localhost/cba_database") const bodyParser...
虽然我觉得代码没缺失,但还是得从常见的语法坑入手排查,给你列几个可能的原因和解决办法:
分号遗漏引发的自动分号插入问题:你看
const mongoose = require("mongoose")和mongoose.connect(...)这两行都没加分号,JS虽然有自动分号插入机制,但有时候遇到换行后紧跟括号、方括号这类情况,会把两行代码错误合并,直接触发「Unexpected Token」。先把所有缺失的分号补上试试,比如改成:const mongoose = require("mongoose"); mongoose.connect("mongodb://localhost/cba_database");截断代码的隐藏语法错误:你贴的代码到
bodyParser就断了,大概率是后面的代码有问题——比如有没有漏写require('body-parser')的赋值?或者app.use(bodyParser...)的时候漏了括号、引号?比如正确的bodyParser引用应该是:const bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json());你可以把这部分补全后再检查语法。
特殊字符排查:有时候不小心输入了全角的分号、引号,肉眼很难发现,比如把英文的
;写成了中文的;,这种情况也会触发语法错误。可以用编辑器的显示所有字符功能(比如VSCode里按Ctrl+Shift+P,搜索「Toggle Render Whitespace」),看看有没有奇怪的字符。用工具定位错误:如果还是找不到问题,试试用ESLint这类语法检查工具,它能自动扫描代码,精准指出错误位置,比肉眼排查高效多了。
内容的提问来源于stack exchange,提问作者Sami

