node.js - Nodejs : TypeError: Object #<Object> has no method 'endianness'

标签 node.js mongodb

我尝试在 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/

相关文章:

javascript - DOM 加载后的 Meteor Load Javascript 函数

mongodb - 使用电机连接 MongoDB 时,Asyncio (Quart) 引发附加到不同循环的任务错误

linux - MongoDB安装Ubuntu 12.04 LTS报错

node.js - 如何配置 pm2 来运行 hexo?

javascript - NodeJs : TypeError: require(. ..) 不是函数

node.js - 如何修复找不到模块 'fs'

c# - MongoDB、C# 和 NoRM + 非规范化

node.js - 'db.collection' 与 'new mongo.Collection' 之间的区别

node.js - 将实时组件集成到 REST 后端

mysql - Node.js - MySQL 中的 "PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR"