使用json-server运行generate.js时遇JSON语法错误求助
问题根源与解决方法
问题出在哪
你遇到的错误是因为json-server默认会把传入的文件当作JSON格式解析,但generate.js是一个Node.js模块(用module.exports导出函数),不是合法的JSON,所以触发了语法错误。你改成ES模块的export default也无效,因为不管哪种模块语法都不符合JSON格式要求,json-server依然会按JSON解析。
另外,这个项目的generate.js是针对旧版本json-server写的,新版json-server(v0.17.0+)对JS数据源的要求有变化,也是导致问题的原因之一。
解决办法
方法1:降级到兼容的旧版json-server
这个项目的代码适配的是旧版json-server,直接降级就能解决:
npm install json-server@0.16.3 --save-dev
然后重新执行:
npx json-server generate.js
方法2:适配新版json-server修改代码
如果不想降级,修改generate.js让它直接导出生成好的数据对象,而不是函数:
function generate() { // 保留原generate函数里的所有代码不变 const courses = [ // ...原数组内容 ]; return { courses }; } // 直接导出执行后的结果,而不是函数 module.exports = generate();
然后执行原命令即可:
npx json-server generate.js
如果你的项目用ES模块(package.json里有"type": "module"),就改成ES模块的导出方式:
function generate() { // 原代码不变 } export default generate();
内容的提问来源于stack exchange,提问作者Lance_Klusener
相关产品推荐
相关产品推荐

