非法指令(核心转储)Node.Js

问题描述 投票:0回答:3

我将用 ExpressJs 开发的系统复制到生产服务器。 我的系统使用 HTTPS (SSL)。

当返回 400、403、404 或故意这样的某些代码时,它会使用 JSON 正确响应。

当返回应该是200时,节点在控制台中显示错误“非法指令(核心转储)”并破坏了应用程序。

node.js express ssl https
3个回答
3
投票

看来您复制了

node_modules
,而不是移动其他所有内容并运行
npm install
来安装依赖项。

更新:现在,在您发布答案后,我发现情况确实如此。

问题在于某些模块已编译二进制组件,无法在不同架构之间移动。它们每次都需要构建,因此您永远不应该复制

node_modules
目录。

但是,如果您确实复制了

node_modules
目录或者更新了系统中的 Node.js,那么您可以运行
node_modules
,而不是删除
npm install
并运行
npm rebuild
。 (感谢 mscdex 在评论中指出。)


1
投票

我解决了问题,删除文件夹node_modules并运行npm install


0
投票

帮助我的最终解决方案是将 Node 升级到最新的 LTS(在我的例子中,我使用 nvm),并使用

npm install -g npm
和 YARN
npm install -g yarn
&
npm upgrade -g yarn
升级 npm。

如果您使用

screen
或任何后台进程,请确保这些进程也使用最新的node、npm和yarn版本(这部分让我头疼了一个小时,希望其他人不会发生这种情况).

© www.soinside.com 2019 - 2024. All rights reserved.