Vietnam

    Nodejs.vn

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Groups
    • Search

    Hỏi về hàm pre() trong mongoose.

    Hỏi Đáp
    0
    3
    935
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Tran Hoang Hiep
      Tran Hoang Hiep last edited by Vũ

      Các anh chị đi trước cho e hỏi hàm pre trong mongoose là hàm xử lý trước khi data được thực hiện trong mongoose.
      E được biết nó chỉ là middleware nhưng e thắc mắc là làm sao kiểm soát dữ liệu giữa request gửi lên và check nó với cơ sở dữ liệu.
      E đang làm với passport khi trước khi lưu e muốn nó mã hóa dữ liệu từ request gửi vào.

      E muốn hỏi hàm đó có ý nghĩa gì và làm sao để e có thể lấy password từ request .

      E viết như này mà nó ko chạy

      userSchema.pre("save", function (next) {
          // trên này bạn có thể bắn vào 1 đối số ví dụ 
          var hashedPassword = passwordHash.generate(password, {
              algorithm: "SHA-256",
              saltLength: 12,
              iterations: 1
          });
      
          this.password = hashedPassword;
          console.log(hashedPassword);
          next();
      });
      

      Do e chưa hiểu lên bị sai ai có thể chỉ e ý nghĩa của nó với ạ.

      Vũ C 2 Replies Last reply Reply Quote 0
      • Vũ
        Vũ Global Moderator @Tran Hoang Hiep last edited by

        @Tran-Hoang-Hiep Nó không chạy ở đây có nghĩa như nào bạn ? Khi sử dụng User.create() thì bản ghi có được lưu vào cơ sở dữ liệu ko ? Hàm console.log(hashedPassword) có in ra thông tin gì ko ?

        Về bản chất thì hàm pre ở đây là một trạng thái trong lifecycle của một đối tượng mongoose trước khi đối tượng đó được lưu trữ vào csdl.

        Tech-nông
        Email: [email protected]
        Profile: about.me/vunb
        Github: github.com/vunb
        Twitter: twitter.com/nhubaovu

        1 Reply Last reply Reply Quote 0
        • C
          Con Thú hoang sổ lồng @Tran Hoang Hiep last edited by

          @Tran-Hoang-Hiep

          userSchema.pre("save", function (next) {
          // trên này bạn có thể bắn vào 1 đối số ví dụ
          var hashedPassword = passwordHash.generate(this.password, { //this.password chính là req pass mà bạn gửi lên
          algorithm: "SHA-256",
          saltLength: 12,
          iterations: 1
          });

          this.password = hashedPassword;
          console.log(hashedPassword);
          next();
          

          });

          1 Reply Last reply Reply Quote 0
          • First post
            Last post