简体   繁体   English

即使我的 package.json 和 node_modules 文件夹中有它们,我也得到了未定义的包

[英]I'm getting undefined packages even though I have them in my package.json and node_modules folder

So I'm developing a web app using NestJS as its backend.所以我正在开发一个使用 NestJS 作为后端的网络应用程序。 Also I'm using docker to build all my backend.此外,我正在使用 docker 来构建我的所有后端。 I'm having a problem that some installed packages logs as "undefined" and some other works properly.我遇到了一些已安装的包记录为“未定义”而其他一些正常工作的问题。

For example in my CreateUser class I have例如在我的 CreateUser 类中,我有

import bcrypt from 'bcrypt';

@Injectable()
export class CreateUser {
  constructor(
    @InjectRepository(User)
    private usersRepo: Repository<User>,
  ) {}

  async execute(input: CreateUserInput): Promise<User> {
    console.log('bcrypt', bcrypt);
    const user = this.usersRepo.create(input);
    user.email = input.email.trim().toLowerCase();
    user.password = await bcrypt.hash(input.password, 10);
    const newUser = await this.usersRepo.save(user);
    return newUser;
  }

When I execute this function it logs this当我执行这个函数时,它会记录这个

bcrypt undefined
data TypeError: Cannot read property 'hash' of undefined

But if I go to my node_modules I have the bcrypt module installed.但是如果我去我的 node_modules 我已经安装了 bcrypt 模块。 And the same happens in my package.json同样的情况也发生在我的 package.json 中

I think its a docker problem but I've gone into the container and inspected the node_modules folder and it also is installed in there.我认为这是一个 docker 问题,但我已经进入容器并检查了 node_modules 文件夹,它也安装在那里。 Here goes my docker file just in case这是我的 docker 文件以防万一

FROM node:12-alpine

ENV NODE_ENV development

RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app

COPY package.json package-lock.json /usr/src/app/

RUN npm install

COPY . .

ENTRYPOINT ["npm", "run", "start:dev"]

Any ideas of why im not being able to use this package?为什么我不能使用这个包的任何想法?

you should do like this你应该这样做

import {hash} from 'bcrypt'

and then进而

 user.password = await hash(input.password, 10);

to understand more please refer to : https://learnjsx.com/category/2/posts/es6-javaScript了解更多请参考: https : //learnjsx.com/category/2/posts/es6-javaScript

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 破坏 node_modules 和 package.json 后如何重置依赖树? - How can I reset my dependency tree after ruining node_modules and package.json? 依赖性甚至未在package.json和node_modules中定义 - Dependency Not found even defined in package.json and node_modules 本地 package.json 存在,但缺少 node_modules - Local package.json exists, but node_modules missing 弃用警告:在 node_modules\postcss\package.json 的 package 的“导出”字段模块解析中使用弃用的文件夹映射“./” - DeprecationWarning: Use of deprecated folder mapping "./" in the "exports" field module resolution of the package at node_modules\postcss\package.json 我可以将 node_modules 文件夹移动到另一个项目吗? - Can i move my node_modules folder to another project? Github说我在package-lock(cryptiles)中有一个Node安全漏洞,但是它没有安装在package.json中而且我没有使用它,解决方案呢? - Github says I have a Node security vulnerability in package-lock (cryptiles) but it's not installed in package.json and I'm not using it, solutions? 我是否必须将我创建并想要导入的任何脚本/模块放置在 node_modules 文件夹中? - Do I have to place any scripts/modules I create and want to import within the node_modules folder? 如果我使用的是webpack,我是否需要实时主机服务器上的node_modules文件夹? - Do I need node_modules folder on live host server if I'm using webpack? 我将 bcrypt 安装到我的 package.json 中没有什么问题 - I have little problem installing bcrypt to my package.json 如何在docker构建期间的yarn / npm安装期间缓存node_modules以获取未更改的package.json - How to cache node_modules for unchanged package.json during yarn / npm install during docker build?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM