gpt4 book ai didi

node.js - NPM 模块引用不适用于 Mongoose

转载 作者:太空宇宙 更新时间:2023-11-04 02:47:30 24 4
gpt4 key购买 nike

因此,当尝试将 Node.js 应用程序部署到 Heroku 时,我收到了 Heroku Logs -t 错误。

> State changed from crashed to starting Starting process with command
> `node ./bin/www` Detected 512 MB available memory, 512 MB limit per
> process (WEB_MEMORY) Recommending WEB_CONCURRENCY=1 Error: Cannot
> find module 'mongodb/lib/read_preference'
> throw err; module.js:340
> ^
> at Function.Module._resolveFilename (module.js:338:15)
> at Function.Module._load (module.js:280:25)
> at Module.require (module.js:364:17)
> at require (module.js:380:17)
> at Module._compile (module.js:456:26)
> at Object.Module._extensions..js (module.js:474:10)
> at Object.<anonymous> (/app/node_modules/mongoose/lib/utils.js:5:16)
> at Module.load (module.js:356:32)
> at Function.Module._load (module.js:312:12)
> at Module.require (module.js:364:17)

寻找目标文件的文件的文件夹结构是这样的(在node_modules文件夹内):

mongoose/lib/utils.js

查找文件的代码如下:

var ReadPref = require('mongodb/lib/read_preference')

目标文件位于:

mongoose/node_modules/mongodb/lib/read_preference.js

现在根据 Node 的搜索算法( https://nodejs.org/api/modules.html ),文件会上移到 node_modules 文件夹,然后搜索 mongodb,找到它并进入其文件夹,最后到达 read_preference 文件。然而,这显然行不通。我可以做什么来解决这个问题?

最佳答案

为什么这么说呢?

Heroku 会缓存您的模块,因此对 package.json 的任何更新都不会被识别。所以你的本地副本将是明显正确的;然而,Heroku 不会。为了克服这个问题,请输入:

heroku 配置:设置 NODE_MODULES_CACHE=false

关于node.js - NPM 模块引用不适用于 Mongoose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30020337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com