由于'bcript'中间件,Azure Web App未运行(NodeJS)

问题描述 投票:0回答:1

我正在使用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

node.js azure express
1个回答
0
投票

我试图克隆你的GitHub仓库在我当地运行它,然后我发现有两个问题。

  1. const define = require('../../lib/define');中的代码routes\productAPI.js无法正常工作,因为没有模块../../lib/define,错误信息如下。 internal/modules/cjs/loader.js:582 throw err; ^ Error: Cannot find module '../../lib/define'
  2. 考虑到资源安全性,请永远不要将任何代码包含到公共存储库的真实资源连接字符串。

更新:

有两个包bcryptbcrypt.js用于散列密码,它们被添加到你的package.json文件中。它们在API中兼容,但bcrypt需要node-gypGlibC在Linux上安装时进行编译,bcrypt.js是一个纯粹的Javascript工具,比bcrypt慢30%左右。

根据您的回购中的上述和node_modules目录,我认为您关于Cannot find module 'bcrypt'的问题是由以下原因引起的。

  1. 当你只在你的项目中编写bcryptjs代码而不使用node_modules时,你的var bcrypt = require('bcryptjs');中没有bcrypt包。
  2. bcrypt软件包安装仅需要带有GlibC的C / C ++编译器,但它可能不在您的Azure Linux中,因此可以打破npm安装进度。

我建议您可以尝试删除依赖项bcrypt来解决问题,因为您似乎没有在项目中使用它。

如有任何疑虑,请随时告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.