const express = require('express');
const router = express.Router();
require('../db/conn');
const User = require('../model/userSchema');
router.get('/', (req, res) => {
res.send(`Hello World from the server from router.`);
});
router.post('/register', async (req, res) => {
const { name,email,phone,work,password,cpassword } = req.body;
if(!name || !email || !phone || !work || !password || !cpassword){
return res.status(422).json({error:"please fill all the fields data.."});
}
try {
const userExist = await User.findOne({ "$or": [ { email: email }, { phone: phone} ] })
if(userExist.email==email){
return res.status(422).json({error:"Email ID is already exist."});
}else if(userExist.phone==phone){
return res.status(422).json({error:"Mobile no is already exist."});
}
const user = new User({name,email,phone,work,password,cpassword});
const userRegister = await user.save();
if(userRegister){
res.status(201).json({message:"User Registered Successfully."});
}else{
res.status(500).json({error:"Failed to regsiter user."});
}
} catch (err) {
console.log(err);
}
});module.exports = router;
我撰寫了用于檢查電子郵件和移動設備是否存在于資料庫中的代碼。實際上,我想以不同的方式進行檢查,而不是像電子郵件或手機這樣的單一陳述句已經存在。所以我寫了這段代碼,但為了檢查它作業正常,但是當我輸入所有唯一資料時,就會出現一個錯誤。資料不存盤在資料庫中。錯誤是
型別錯誤:無法在 E:\MERN Project\Server\router\auth.js:20:22 at processTicksAndRejections (node:internal/process/task_queues:96:5) 讀取 null 的屬性(讀取“電子郵件”)
uj5u.com熱心網友回復:
我認為問題在于您如何創建新記錄,而不是嘗試
const user = new User({name,email,phone,work,password,cpassword});
const userRegister = await user.save();
使用模式創建記錄。
const user = await User.create({name,email,phone,work,password,cpassword});
await user.save();
實際上,如果您在創建后不更改任何屬性,則可以跳過保存。
uj5u.com熱心網友回復:
實作這一點的最簡單方法是使用驗證器包。因此,如果不滿足所有條件,資料將無法保存。
我推薦使用'joi'。請仔細閱讀檔案以獲得更深入的理解。
https://www.npmjs.com/package/joi
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/398919.html
標籤:javascript 节点.js MongoDB 表达 猫鼬
下一篇:未處理的例外:型別'_InternalLinkedHashMap<String,dynamic>'不是型別轉換intflutter中型別'OriginDest
