gpt4 book ai didi

node.js - Nodejs : TypeError: Object # has no method 'endianness'
转载 作者:太空宇宙 更新时间:2023-11-03 23:28:22 28 4
gpt4 key购买 nike

我尝试在 Ubuntu 14.04 LTS 上运行服务器:node app.js 然后收到此错误:

/home/ubuntu/Ytutor_Server/node_modules/mongodb-core/lib/topologies/shared.js:18
var nodejsversion = f('Node.js %s, %s', process.version, os.endianness());
^
TypeError: Object #<Object> has no method 'endianness'
at Object.<anonymous> (/home/ubuntu/Ytutor_Server/node_modules/mongodb-core/lib/topologies/shared.js:18:61)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/home/ubuntu/Ytutor_Server/node_modules/mongodb-core/lib/connection/pool.js:11:12)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)

我不知道这有什么问题。我使用 Nodejs v6.9 和 Mongodb v3.2.11,它应该有包含“endianness”的模块操作系统?

最佳答案

问题是使用旧版本的 Node 来运行脚本(在本例中为 v0.10 之前的版本)。 os.endianness() 已添加到 Node v0.10.0(技术上是 v0.9.x)中。

Linux 上单独的 nodenodejs 二进制文件的原因是某些发行版(即基于 Debian 的发行版)这样做是为了避免包名称冲突。在node.js之前,“node”包名称已经被业余 radio 包使用,因此当node.js被Debian正式打包时,他们选择了一个不同的名称(“nodejs”)而不是替换现有的“node”包。为了进一步混淆,两个包都使用相同的二进制名称,因此也必须更改以避免任何潜在的混淆。不过,对于采用 node 二进制名称的 shebang,这确实会带来一些问题。

由于大多数开发人员不使用“node”业余 radio 软件包,因此解决整个 node/nodejs 命名问题的一种流行解决方案是简单地使用第三方存储库(例如 NodeSource's ),该存储库不仅提供最新版本的 Node,而且还在其软件包中使用“node”二进制名称。

关于node.js - Nodejs : TypeError: Object #<Object> has no method 'endianness' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41201742/

28 4 0