React Native:开发服务器返回响应错误代码:500
Posted
技术标签:
【中文标题】React Native:开发服务器返回响应错误代码:500【英文标题】:React Native: The development server returned response error code: 500 【发布时间】:2021-09-16 19:12:39 【问题描述】:我尝试在模拟器上运行我的应用程序,构建已成功完成,但是当应用程序开始捆绑大约 26% 时,此错误会弹出到 cmd:
[Mon Nov 08 2021 13:00:11.720] BUNDLE ./index.js
error: TypeError: Cannot read properties of undefined (reading 'reduce')
at resolveDependencies (C:\Users\iarch\Desktop\Directik App\mobile-v2-new\node_modules\metro\src\DeltaBundler\traverseDependencies.js:586:33)
at C:\Users\iarch\Desktop\Directik App\mobile-v2-new\node_modules\metro\src\DeltaBundler\traverseDependencies.js:275:33
at Generator.next (<anonymous>)
at asyncGeneratorStep (C:\Users\iarch\Desktop\Directik App\mobile-v2-new\node_modules\metro\src\DeltaBundler\traverseDependencies.js:87:24)
at _next (C:\Users\iarch\Desktop\Directik App\mobile-v2-new\node_modules\metro\src\DeltaBundler\traverseDependencies.js:107:9)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
在模拟器上出现闪屏,然后出现红屏:
我试图用这个版本的节点来解决:
17.0.1
16.13.0
16.10.0
14.18.1
对于每一个,我删除node_modules
文件夹,然后用nvs
更改我的节点版本,然后我运行npm install
,但同样的事情发生了。
我该如何解决?
【问题讨论】:
【参考方案1】:当我们连接 API 并且服务器损坏/关闭时,经常会发现 javascript 代码错误...有用的链接如下我在 Mozila Docx 中找到了帮助 6.6.1. 500内部服务器错误 500(内部服务器错误)状态代码表示服务器遇到了阻止它完成请求的意外情况。参考文件
https://httpwg.org/specs/rfc7231.html#status.500
【讨论】:
【参考方案2】:你首先需要通过给定的命令安装 react native 社区
npm i @react-native-community/cli
那么你需要安装 react-timer-mixin,因为它们可以帮助我们开发更快的响应服务器
npm install react-timer-mixin
这可能会解决您的问题
【讨论】:
react-timer-mixin
在这种情况下有何用处
如果您包含 TimerMixin,那么您可以用 setTimeout(fn, 500) 替换您对 setTimeout(fn, 500) 的调用,一切都会为您妥善清理。【参考方案3】:
您可以尝试在没有缓存的情况下重新启动捆绑器:
npm start -- --reset-cache
如果这不起作用,您可能需要清除所有内容并从那里重新启动服务器:
watchman watch-del-all &&
rm -rf $TMPDIR/react-native-packager-cache-* &&
rm -rf $TMPDIR/metro-bundler-cache-* &&
rm -rf node_modules/
&& npm cache clean --force &&
npm install &&
npm start -- --reset-cache
取自:How to clear react-native cache?
如果没有其他方法,你确定你的代码没有错误吗?
【讨论】:
【参考方案4】:对我来说,这是由于我在模拟器上运行项目的方式。
如果你只是运行npm run android
并等待捆绑器出现在另一个终端上,试试这个:
打开一个终端并在其上运行 npm start
等待反应徽标出现。
然后打开另一个终端和npm run android
。
我不知道为什么,但这对我来说是有效的。
【讨论】:
以上是关于React Native:开发服务器返回响应错误代码:500的主要内容,如果未能解决你的问题,请参考以下文章
分配的响应数据显示 [object object] React Native
Expo - 网络响应超时错误 (create-react-native-app) (Windows 10)