所以我正在開發一個使用 NestJS 作為后端的網路應用程式。此外,我正在使用 docker 來構建我的所有后端。我遇到了一些已安裝的包記錄為“未定義”而其他一些正常作業的問題。
例如在我的 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;
}
當我執行這個函式時,它會記錄這個
bcrypt undefined
data TypeError: Cannot read property 'hash' of undefined
但是如果我去我的 node_modules 我已經安裝了 bcrypt 模塊。同樣的情況也發生在我的 package.json 中
我認為這是一個 docker 問題,但我已經進入容器并檢查了 node_modules 檔案夾,它也安裝在那里。這是我的 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"]
為什么我不能使用這個包的任何想法?
uj5u.com熱心網友回復:
你應該這樣做
import {hash} from 'bcrypt'
進而
user.password = await hash(input.password, 10);
了解更多請參考:https : //learnjsx.com/category/2/posts/es6-javaScript
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/347321.html
標籤:javascript 节点.js 码头工人 新产品经理 嵌套
