我正在使用Azure设置新的Web应用程序。一切都找到了,直到我从Github上传代码,然后网站显示此错误:https://linuxserver.azurewebsites.net/
这是日志: 2019-04-17T05:40:54.659490887Z错误:找不到模块'bcrypt'
这是我在Github https://github.com/phongluudn1997/express-testing上的代码
这是用于Azure上的新Linux服务器,并使用MLAB,Nodejs,Express运行NoSQL
答案 0 :(得分:0)
我试图克隆您的GitHub存储库以在本地运行它,然后发现有两个问题。
const define = require('../../lib/define');
中的代码routes\productAPI.js
无法工作,因为没有模块../../lib/define
,下面的错误信息。
internal/modules/cjs/loader.js:582
throw err;
^
Error: Cannot find module '../../lib/define'
考虑到资源安全性,请不要提交任何包含真实资源连接字符串的代码到公共仓库。
更新:
有两个用于散列密码的软件包bcrypt
和bcrypt.js
,已添加到您的package.json
文件中。它们在API中兼容,但是bcrypt
要求node-gyp
与GlibC
一起在Linux上安装时进行编译,bcrypt.js
是一种纯Javascript实现,比{{1} }。
根据上述内容和您仓库中的bcrypt
目录,我认为您关于node_modules
的问题是由以下这些原因引起的。
var bcrypt = require('bcryptjs');
代码而不使用Cannot find module 'bcrypt'
时,bcryptjs
中没有node_modules
软件包。bcrypt
软件包的安装仅需要使用带有GlibC的C / C ++编译器,但可能不在您的Azure Linux中,这样会中断npm的安装进度。我建议您可以尝试删除依赖性bcrypt
来解决此问题,因为似乎您没有在项目中使用它。
任何担心,请随时让我知道。