我正在使用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
我试图克隆你的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工具,比bcrypt
慢30%左右。
根据您的回购中的上述和node_modules
目录,我认为您关于Cannot find module 'bcrypt'
的问题是由以下原因引起的。
bcryptjs
代码而不使用node_modules
时,你的var bcrypt = require('bcryptjs');
中没有bcrypt
包。bcrypt
软件包安装仅需要带有GlibC的C / C ++编译器,但它可能不在您的Azure Linux中,因此可以打破npm安装进度。我建议您可以尝试删除依赖项bcrypt
来解决问题,因为您似乎没有在项目中使用它。
如有任何疑虑,请随时告诉我。