为什么相同的代码在服务器端不能像本地一样工作?

编程入门 行业动态 更新时间:2024-10-04 09:25:50

为什么相同的代码在<a href=https://www.elefans.com/category/jswz/34/1771251.html style=服务器端不能像本地一样工作?"/>

为什么相同的代码在服务器端不能像本地一样工作?

一些 api 在本地运行良好,但该 api 在服务器端不起作用。

例如

本地端响应:

服务器端响应:

这是业务逻辑。如何解决这个问题?

async fullSignup(req, res, next) {
    const adminDetailSchema = Joi.object({
      // admin signUp valildation
      username: Joi.string().min(3).max(30).required().regex(/^\w+$/).messages({
        "string.base": "Username must be a string",
        "string.empty": "Username cannot be empty",
        "string.min": "Username must have at least {{#limit}} characters",
        "string.max": "Username must have at most {{#limit}} characters",
        "string.pattern.base":
          "Username must only contain letters, numbers, or underscores",
        "any.required": `Username is a required field`,
      }),
      email: Joi.string().email().required().messages({
        "string.base": `Email should be a type of 'text'`,
        "string.empty": `Email cannot be empty`,
        "string.email": `Please enter a valid email address`,
        "any.required": `Email is a required field`,
      }),
      password: Joi.string()
        // .pattern(new RegExp(/^(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[0-9]).{8,}$/))
        .min(5)
        .required()
        .messages({
          // "string.pattern.base": `Password must be between 8 characters and can only contain letters, numbers and 1-capital letter, 1-special character`,
          "string.min": "Password must have at least {{#limit}} characters",
          "string.empty": `Password cannot be empty`,
          "any.required": `Password is a required field`,
        }),
      // admin details valildation
      name: Joi.string().required().messages({
        "string.base": "name filed must be a string",
        "string.empty": "name cannot be empty",
        "any.required": `name is a required field`,
      }),
      company_name: Joi.string().required().messages({
        "string.base": "company_name filed must be a string",
        "string.empty": "company_name cannot be empty",
        "any.required": `company_name is a required field`,
      }),
      phone_number: Joi.string()
        .pattern(/^\+?[1-9]\d{1,9}$/)
        .min(10)
        .message("phone_number length must be at least 10 Digits")
        .required()
        .messages({
          "string.base": "phone_number filed must be a string",
          "string.empty": "phone_number cannot be empty",
          "string.pattern.base": "Please enter a valid phone number",
          "any.required": `phone_number is a required field`,
        }),
      address: Joi.string().required().messages({
        "string.base": "address filed must be a string",
        "string.empty": "address cannot be empty",
        "any.required": `address is a required field`,
      }),
      city: Joi.string().required().messages({
        "string.base": "city filed must be a string",
        "string.empty": "city cannot be empty",
        "any.required": `city is a required field`,
      }),
      pincode: Joi.number().optional().messages({
        "number.base": "pincode filed must be a number",
        // "number.empty": "pincode cannot be empty",
        // "any.required": `pincode is a required field`,
      }),
      image: Joi.string()
        .pattern(/\.(jpg|jpeg|png)$/i)
        // .required()
        .max(5242880) // 5MB in bytes
        .messages({
          "string.pattern.base": "Image must be a valid JPEG, JPG, or PNG file",
          "string.max": "Image size must be less than 5MB",
        }),
    }).options({ abortEarly: false });

    const { error } = adminDetailSchema.validate(req.body);

    if (error) {
      return next(error);
    }

    let {
      email,
      password,
      username,
      name,
      company_name,
      phone_number,
      address,
      city,
      pincode,
    } = req.body;

    // ! signup data

    try {
      // ? check valid email
      let doc = await emailValidator.validate(email);
      if (!doc.valid)
        return next(CustomeErrorHandler.validation("Enter valid email!"));

      // ? query of username validation
      let usernameQuery = await client.query(
        `SELECT username FROM accounts WHERE username = '${username}'`
      );
      if (usernameQuery.rows.length > 0) {
        return next(
          CustomeErrorHandler.alreadyExist("username is already exist")
        );
      }

      // ? query of email validation
      let emailQuery = await client.query(
        `SELECT email FROM accounts WHERE email = '${email}'`
      );
      if (emailQuery.rows.length > 0) {
        return next(CustomeErrorHandler.alreadyExist("email is already exist"));
      }
    } catch (error) {
      return next(error);
    }

    let adminSignup;
    try {
      // * password hash
      const hashedPassword = await bcrypt.hash(password, 10);

      // * role
      // * admin : 1
      // * partner : 0

      // ? query of insert user data
      let query = await client.query(
        `INSERT INTO accounts(username, email, password, role, created_on, updated_on) VALUES('${username}', '${email}', '${hashedPassword}', '${USER_ROLE.ADMIN}', current_timestamp, current_timestamp) RETURNING *`
      );
      adminSignup = query.rows[0];
      delete adminSignup.phone;
      const insertAdminQuery = await client.query(
        `INSERT INTO admins(account_id, name, company_name, phone_number, address, city, pincode, created_on, updated_on) VALUES('${adminSignup.account_id}', '${name}', '${company_name}', '${phone_number}', '${address}', '${city}', '${pincode}', current_timestamp, current_timestamp) RETURNING *`
      );

      document = insertAdminQuery.rows[0];
    } catch (error) {
      return next(error);
    }

    return res.status(200).json({
      apiCode: "WM036?",
      statusCode: 200,
      msg: commonMessages.createSuccfully,
      data: { ...adminSignup, originalPassword: password, ...document },
    });
  },

重新安装所有库并在服务器上恢复。 但它仍然是那个错误。

回答如下:

更多推荐

为什么相同的代码在服务器端不能像本地一样工作?

本文发布于:2024-05-30 17:42:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770755.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:服务器端   能像   代码   工作

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!